2014-12-05 76 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内部排序在我的问题上面贴....