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
];
</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目錄下的例子。