我遇到了jqgrid的onSortCol事件的问题。
我正在尝试禁用客户端排序并在服务器端处理它。 由于约束,我必须使用数据类型作为本地而不是json。
我可以看到正在进行服务器端调用并获取结果并显示 在ui屏幕上。但是我无法阻止客户端排序的发生。
返回'停止'无法阻止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 :(得分: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中的自定义排序,如上面在我的问题中所公布....
答案 1 :(得分:0)
可以通过指定" sortable:false"来禁用客户端排序。在声明列时。请参阅下面的代码段。
//your grid.
jQuery('#myJqGrid');
//Definition of a colModel
{name:'ColumnName', index:'name', sortable:false, align:'left', edittype:'text'}