1

我有个问题。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/

4

2 回答 2

2

编码

alert($('grid').jqGrid('getCol', 'Unit', false, 'sum'));

看来我错了。可能是这样的

alert($('#grid').jqGrid('getCol', 'Unit', false, 'sum'));

但最好使用$(this)inside ofloadComplete和其他回调:

alert($(this).jqGrid('getCol', 'Unit', false, 'sum'));

更新:您的演示代码中的主要问题是在您填充数据之前loadComplete将被调用。此外,填充网格是我所知道的最慢的方式。您应该将参数与网格的所有数据一起使用,并额外使用以提高性能。在此处查看修改后的演示。addRowDatadatagridview: true

于 2012-06-13T09:24:31.177 回答
0

问题是我的代码中的错误。所以这不是 jq Grid 问题。

于 2012-06-20T10:10:19.127 回答