我有问题。在将数据传递给网格之前,LoadComplete将激活。
我有这样的表格:
我通过jquery Post将新行数据传递给服务器。
刷新网格$('#grid').trigger("reloadGrid");
在该事件之后抛出并运行此函数alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum');)
显示优先值(在我添加项目之前的值实际值)。所以,如果我有两行,其中值为
我添加了第三个值 - 1.弹出窗口显示 2 ,但预计 3 。 如果我删除行我有同样的问题 我的网格:
jQuery("#grid").jqGrid({
caption: 'Timesheet',
url:'/GetData',
editUrl: '/EditRow'
datatype: "json",
colNames: ['Id','Start Time', 'End Time', 'Unit'],
colModel: [
{ name: 'Id', index: 'Id' },
{ name: 'StartTime', index: 'StartTime' },
{ name: 'EndTime', index: 'EndTime' },
{ name: 'Unit', index: 'Unit' }
],
rowNum:10,
rowList:[10,20,30],
pager: '#pager2',
sortname: 'id',
viewrecords: true,
sortorder: "desc",
postData: { entityId: function () {
return $('#GetId').val();
},
loadComplete: function (data) {
**alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum');)**
}
});
jQuery("#grid").jqGrid('navGrid','#pager2',{edit:false,add:true,del:false});
添加了示例。 http://jsfiddle.net/5bmVt/1/
编辑。 修改的例子 http://jsfiddle.net/SUvvW/1/
答案 0 :(得分:2)
代码
alert($('grid').jqGrid('getCol', 'Unit', false, 'sum'));
好像我错了。它可能像
alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum'));
但最好在$(this)
内使用loadComplete
和其他回调:
alert($(this).jqGrid('getCol', 'Unit', false, 'sum'));
更新:您的演示代码中的主要问题是,在填充数据之前,loadComplete
将被称为。此外,关于addRowData
填充网格是我所知道的最缓慢的方式。您应该将data
参数与网格的所有数据一起使用,并使用gridview: true
来提高性能。请参阅修改后的演示here。
答案 1 :(得分:0)
我的代码中存在问题。所以这不是jq Grid问题。