【发布时间】:2012-06-13 08:43:56
【问题描述】:
我有问题。 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/
【问题讨论】:
-
您写了“我添加了第三个值 - 1”。你是什么意思?您是否使用
addRowData在客户端再添加一行,或者服务器上的数据已更改并重新加载整个网格?这是网格的其他设置(datatype,loadonce)。您使用哪个版本的 jqGrid?在代码中可以看到诸如delUrl、hidePaging、readonly、getRowsUrl、gridSettings、prmSearch之类的选项,这些选项在 jqGrid 中不存在。loadComplete、postData和cmTemplate等其他设置位于gridSettings内部。因此,您发布的代码绝对不清楚。 -
Oleg,首先感谢您在其他主题中的回答。我用你的答案解决了很多问题。我们使用一些框架来包装 jqGrid 的默认设置。 1. 是的 - 我使用 addRowData 在客户端上又添加了一行。在它事件抛出并显示以前的值之后。
-
2.我将网格代码修改为默认视图。
-
最后一个版本的代码仍然没有包含您遇到问题的最重要部分:我看不到使用
addRowData的行。在图片一看到 2 行。如果您准备 2 或 3 行可以重现问题的完整演示,那将是最好的。此外,当前代码包含sortname: 'id',但不存在'id'列。您使用$('#GetId'),但不存在 HTML 片段。您从jQuery("#list2")创建网格,但使用来自 $('grid').jqGrid('getCol', ... 的警报。$('grid')是什么?甚至不是$('#grid')。所以我真的不明白它对谁有用。 -
你说得有道理。我马上改。
标签: jqgrid