Javascript 在免费jqgrid上定义自定义排序
我有一个名为InterestedValue的列,我想允许按下拉列表的标签进行排序 我发现了类似的问题,并实施了建议的解决方案,但它不起作用 本质上,没有发生任何事情,应用程序的行为与添加自定义sorttype之前完全相同。即使在其中添加警报,也不会发生任何事情、不会出现错误或其他任何情况Javascript 在免费jqgrid上定义自定义排序,javascript,jqgrid,Javascript,Jqgrid,我有一个名为InterestedValue的列,我想允许按下拉列表的标签进行排序 我发现了类似的问题,并实施了建议的解决方案,但它不起作用 本质上,没有发生任何事情,应用程序的行为与添加自定义sorttype之前完全相同。即使在其中添加警报,也不会发生任何事情、不会出现错误或其他任何情况 { name: 'InterestedValue', editable: true, sortable: true, formatter: 'select', width: 110, search: f
{
name: 'InterestedValue', editable: true, sortable: true, formatter: 'select', width: 110, search: false, edittype: 'select',
editoptions: {
value: InterestedStatusList,
},
sorttype: function (cellvalue)
{
return InterestedStatusList[cellvalue];
}
}
我按照建议添加了loadonce:true,现在我可以正确地对数据进行排序,但是当我有比第一个屏幕中显示的记录更多的记录时,我无法将它们可视化
我的代码是:
$(gridId).jqGrid(//'setGroupHeaders',
{
url: actionMethod,
shrinkToFit: false,
datatype: 'json',
mtype: 'GET',
loadonce: true,
//sortable: true,
colNames: [MyColumns],
colModel: [
{MyModel }
],
pager: jQuery(pagerId), //jQuery('#pager'),
rowNum: 10,
rowTotal: 2000,
rowList: [10, 20, 30, 40],
height: '100%',
//width:700,
viewrecords: true,
caption: caption,
emptyrecords: 'No records to display',
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
},
//autowidth: true,
multiselect: false,
gridview: true,
editurl: '/InvestorList/Edit',
onSelectRow: function (id) {
if (id) {
$(gridId).jqGrid("editRow", id, true, '', '', '', '', reload)
//ORIGINAL CODE: $(gridId).editRow(id, true,'', '', '', '', reload);
lastSelectedId = id;
}
},
serializeRowData: function (postdata) {
//var response = JSON.stringify(postdata);
var s = '';//'<select>';
$(postdata).each(function (index, data) {
//s += '<option value="' + index + '">' + data + '</option>';
$.each(data, function (k, v) {
if (k == "InterestedValue")
s += v;//'<option value="' + k + '">' + v + '</option>';
});
});
//alert("s=" + s);
if (s.indexOf("100010002") != -1) { //"2_1") {
if (confirm('Are you sure you want to deactivate this record? ')) {
// do things if OK
return postdata;
}
else
return false;
}
return postdata;
},
$(gridId).jqGrid(//'setGroupHeaders',
{
url:actionMethod,
shrinkToFit:错,
数据类型:“json”,
mtype:'获取',
有一次:是的,
//可排序:是的,
colNames:[MyColumns],
colModel:[
{MyModel}
],
pager:jQuery(pagerId),//jQuery(“#pager”),
rowNum:10,
总数:2000,
行列表:[10,20,30,40],
高度:“100%”,
//宽度:700,
viewrecords:是的,
描述:描述,
emptyrecords:'没有要显示的记录',
jsonReader:{
根:“行”,
第页:“第页”,
总计:“总计”,
记录:“记录”,
重复项:false,
Id:“0”
},
//自动宽度:正确,
多选:错,
gridview:没错,
editurl:“/InvestorList/Edit”,
OnSetrow:功能(id){
如果(id){
$(gridId).jqGrid(“editRow”,id,true,,,,,,,,,,reload)
//原始代码:$(gridId).editRow(id,true,,'','',reload);
lastSelectedId=id;
}
},
serializeRowData:函数(postdata){
//var response=JSON.stringify(postdata);
var s=“”;/“”;
$(postdata)。每个(函数(索引、数据){
//s+=''+数据+'';
$。每个(数据、函数(k、v){
如果(k==“利息价值”)
s+=v;/“+v+”;
});
});
//警报(“s=”+s);
如果(s.indexOf(“100010002”)!=-1{/“2_1”){
如果(确认('您确定要停用此记录吗?')){
//如果可以的话就去做
返回postdata;
}
其他的
返回false;
}
返回postdata;
},
基本上,我看到了前十条记录,而我无法访问其余的记录。
如何解决此问题?请在所有问题中填写您使用的jqGrid版本和fork(,或者版本I中的一些旧jqGrid添加了loadonce:true,但是现在我在显示多个页面时遇到了问题。如果添加
loadonce:true
,则应该更改服务器代码,以便它返回所有数据。您不需要实现服务器端分页。