我试图在jqgrid中使用客户端排序,这就是为什么我设置loadonce = true,在我保存新行之后,排序新添加的行消失了。
我该如何解决这个问题?
jQuery("#tableContents").jqGrid({
postData: { orderId: $('#hdnOrderId').val()},
mtype: "POST",
url: "label_edit_dhl.aspx/GetContentsPost",
datatype: "json",
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
serializeGridData: function (postData) {
return JSON.stringify(postData);
},
jsonReader: { repeatitems: true, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
colNames: ['Master Content ID', 'Description Of Goods', 'No Of Items', 'Total Value for Customs', 'Weight', 'Track No'],
colModel: [
{
name: 'master_content_id', index: 'master_content_id', width: 60, hidden: true, editable: true, editrules: { edithidden: false }
},
{
name: 'content', index: 'content', width: 60, sorttype: "string", editable: true, edittype: "text",
editrules: {
required: true
}
},
{
name: 'piecesInt', index: 'piecesInt', width: 90, align: "right", sorttype: "int", editable: true,
editrules: {
number: true,
required: true
}
},
{
name: 'value', index: 'value', width: 100, align: "right", sorttype: "float", editable: true,
editrules: {
required: true
}
},
{
name: 'weight', index: 'weight', width: 80, align: "right", sorttype: "float", editable: true,
editrules: {
required: true
}
},
{
name: 'track_no', index: 'track_no', width: 80, align: "right", sorttype: "string", editable: true
},
],
sortorder: "desc",
viewrecords: true,
regional: 'tr',
height: '100%',
caption: "Manipulating Array Data",
editurl: 'test.asmx/EditContent',
loadonce: true,
sortable: true,
reloadAfterSubmit:true,
rowNum: 10000,
onSelectRow: function (rowid) {
var $self = $(this),
// savedRows array is not empty if some row is in inline editing mode
savedRows = $self.jqGrid("getGridParam", "savedRow");
if (savedRows.length > 0) {
$self.jqGrid("restoreRow", savedRows[0].id);
}
$self.jqGrid("editRow", rowid, {
keys: true,
extraparam: { orderId: $('#hdnOrderId').val(), staffId : $('#hdnStaffId').val()},
aftersavefunc: function (rowid, response) {
var data = eval('(' + response.responseText + ')');
var master_content_id = 0
if (data.hasOwnProperty('d'))
master_content_id = (data.d).master_content_id;
else
master_content_id = data.master_content_id;
$self.jqGrid('setCell', rowid, 'master_content_id', master_content_id);
$self.jqGrid('getLocalRow', rowid).master_content_id = master_content_id;
UpdateOrderLabelInfo($('#hdnOrderId').val());
if (!GridHasEmptyRow($self)) {
$self.jqGrid('addRowData', undefined, {});
}
},
afterSubmit: function (response, postdata) {
alert(response);
},
});
},
loadComplete: function () {
var $self = $(this)
if (!GridHasEmptyRow($self)) {
$self.jqGrid('addRowData', undefined, {});
}
}
});
function editRow(id) {
if (id && id !== lastSelection) {
var grid = $("#tableContents");
grid.jqGrid('restoreRow', lastSelection);
grid.jqGrid('editRow', id,
{
keys: true
});
grid.jqGrid('restoreRow', lastSelection);
lastSelection = id;
}
}