jqGrid loadComplete在数据填充网格之前触发 - sum函数显示以前的值

时间:2012-06-13 08:43:56

标签: jqgrid

我有问题。在将数据传递给网格之前,LoadComplete将激活。

我有这样的表格: enter image description here

我通过jquery Post将新行数据传递给服务器。

刷新网格
$('#grid').trigger("reloadGrid");

在该事件之后抛出并运行此函数alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum');)显示优先值(在我添加项目之前的值实际值)。所以,如果我有两行,其中值为

enter image description here

我添加了第三个值 - 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/

2 个答案:

答案 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问题。