1. 程式人生 > >dojo之DataGrid 排序問題

dojo之DataGrid 排序問題

    前兩天,同事叫我幫忙調查如何不讓dojo的datagrid排序。dojo中關於datagrid的資料比較少,本人找到的只有原始碼和裡面的幾個測試例子。

   grid和datagrid在名稱空間dojox.grid中。

   方法1:修改grid的canSort方法。

程式碼:

<div id="myGrid" dojoType="dojox.Grid" canSort="return false;"
                structure="layout" model="model" />

這是最直接的方法。

  方法2:修改model中canSort方法。

程式碼:

<script>

      ......

      ......

       var model = new dojox.grid.data.Table(null, data);

       model.canSort = function(){return false;}

      ......

      ......

</script>

<div id="myGrid" dojoType="dojox.Grid"
                structure="layout" model="model" />

  方法3:自己實現資料繫結,應用dojox.grid.data.Dynamic模型。

程式碼:

    <script type="text/javascript">
        function getRow(inRowIndex){
            return ' ' + inRowIndex;
        }
       
        var layoutCountries = [
            // view 0
            { type: 'dojox.GridRowView', width: '20px' },
            // view 1
            { cells: [[{ name: "Row", get: getRow

, width: 5}]]}
        ];

    </script>

<div id="grid" jsId="grid" dojoType="dojox.Grid" elasticView="2"
     model="dataModel" structure="layoutCountries ">
</div>

這樣Row這一列就不能排序。

方法4:使用dojox.VirtualGrid而不是dojox.Grid。

我目前還不知道dojox.VirtualGrid、dojox.grid和dojox.DataGrid之間的區別,哪位朋友知道的話請告訴我一聲。

有關定製排序的,可以參考dojox/grid/compat/tests目錄下的例子。