在服务调用之后增加jqgrid中的特定列,然后我使用sortable:true,sortorder:asc,sorttype:int
进行自动排序。
当我排序时,列中的值没有恢复它消失然后网格被排序。在这种情况下,任何人都可以帮助我,这样我即使在排序后也可以恢复我的价值。
here is the code,
$('#gridValue)
.jqGrid(
{
datastr :parsedObj,
datatype :'jsonstring',
height :140,
width :240,
colNames : [ "Id","Name","Count" ],
colModel : [ {
name :'id',
index :'id',
width :30,
align :'left',
sortable :true
}, {
name :'name',
index :'name',
width :30,
align :'left'
}, {
name :'count',
index :'count',
width :20,
align :'left',
sortable :true
}],
rowNum :20,
sortname : 'id',
sorttype :'int',
scroll :true,
viewrecords :true,
shrinkToFit :false,
hoverrows :true,
cellEdit :true,
loadonce :true,
sortorder :'asc',
jsonReader : {
root :'paramValue',
repeatitems :false,
page : function(parsedObj) {
return 1;
},
total : function(parsedObj) {
return 1;
},
records : function(parsedObj) {
}
},
gridComplete : function() {
var gridTable = document
getElementById("gridValue");
var gridTableCount = gridTableCount.rows.length;
if (gridTableCount> 1) {
for (countId = 1; countId < gridTableCount; countId++) {
document.getElementById("gridValue").rows[countId].cells[2].innerHTML = '0'; }
}
}
});
$("#gridValue").setGridParam({
sortname : 'count',
sortorder : 'asc'
}).trigger('reloadGrid');
}
//After service call i will be calling this function to update value in grid
function incrementingValue(){
document.getElementById("gridValue").rows[countId].cells[2].innerHTML =1;
}
但是在网格中自动排序后,值不会保留。请给我一个解决方案
答案 0 :(得分:1)
将id列更改为
{ 名称:'id', index:'id', 宽度:30, 对齐:'左', sortable:是的, formatter:incrementingValue }
然后在网格代码之后添加一个函数来处理增量
var counter; //when calling the service you can increase your value to the counter
function incrementingValue(cellvalue, options, rowObject) {
//var cellValueInt = parseInt(cellvalue); // this bring the existing cell value
return counter=1;
}
};