2014-12-05 80 views
0

我遇到了jqgrid的onSortCol事件問題。jqgrid onSortCol return'stop'無法停止客戶端排序

我想禁用客戶端排序和處理它在服務器端。 由於限制我必須使用數據類型作爲本地而不是json。

我可以看到正在進行的服務器端調用和獲取的結果,並在UI屏幕中顯示 。但是我無法阻止客戶端排序發生。

return'stop'無法阻止jqgrid對新返回的數據執行排序。

有人可以讓我知道如何阻止客戶端排序在這裏發生?

這裏是onSortCol函數內的代碼:

//使用異步調用

 onSortCol: function (index, columnIndex, sortOrder) {    

     that.store.find("oldcontact",{page:page,pagesize:pageSize,columnName:index,sortOrder:sortOrder}).then(function(data){ 


          grid.jqGrid('clearGridData'); 


           grid.jqGrid('setGridParam', {data: data}); 

           grid.trigger('reloadGrid'); 
           return 'stop'; 


         }); 

       } , 

回答

0

客戶端排序可以通過指定「排序:假」被禁用填充數據聲明列時。請參閱下面的代碼段。

//your grid. 
jQuery('#myJqGrid'); 
//Definition of a colModel 
{name:'ColumnName', index:'name', sortable:false, align:'left', edittype:'text'} 
+1

與指定的問題「排序:假」是點擊列沒有事件是由網格觸發的,因此onSolCol事件不會被觸發。我正在處理上面的代碼中的服務器端排序,並希望事件被觸發。在代碼中的問題一旦jqgrid從上面的服務器獲取結果,它會嘗試對它進行排序(這違背了排序服務器端的目的)。我只是想讓jqgrid不這樣做。我在一些帖子中看到'stop'這樣做,但在我的上面的代碼中它不起作用。 – user3630294 2014-12-08 15:32:34

2

發現我的問題的解決方案..

只要定義sorttype返回一個恆定值將禁用客戶端排序。

這爲我做的伎倆:

 colModel:[ 
       {name:'id',index:'id', key: true, width:70,sorttype:"int"}, 
       {name:'firstName',index:'firstName', width:90,sorttype: function() { 
                    return 1; // any constant value 
                   }}, 
       {name:'lastName',index:'lastName', width:100,sorttype: function() { 
                   return 1; // any constant value 
                  }} 

      ] 

我繼續處理定製的onSortCol內部排序在我的問題上面貼....