jqGrid loadComplete在数据填充的grid-sum函数显示之前的值之前激发

jqGrid loadComplete在数据填充的grid-sum函数显示之前的值之前激发,jqgrid,Jqgrid,我有个问题。在将数据传递到网格之前加载Complete fire 我有以下表格: 我通过jquery Post将新行数据传递给服务器。并通过 $('#grid').trigger("reloadGrid"); 在该事件发生后,抛出并运行此函数警报($('#grid')。jqGrid('getCol','Unit',false',sum');)显示以前的值(在添加项之前的实际值)。如果我有两行,其中的值是 我增加了第三个值-1。和弹出窗口显示2,但预期3。 如果我删除行,

我有个问题。在将数据传递到网格之前加载Complete fire

我有以下表格:

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

$('#grid').trigger("reloadGrid");
在该事件发生后,抛出并运行此函数
警报($('#grid')。jqGrid('getCol','Unit',false',sum');)
显示以前的值(在添加项之前的实际值)。如果我有两行,其中的值是

我增加了第三个值-1。和弹出窗口显示2,但预期3。 如果我删除行,我也会遇到同样的问题 我的网格:

增加了一个例子。

编辑。 修改示例 代码

alert($('grid').jqGrid('getCol','Unit',false,'sum');
看来我错了。可能是这样的

alert($('#grid').jqGrid('getCol','Unit',false',sum');
但是最好在
loadComplete
和其他回调中使用
$(this)

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

已更新:演示代码中的主要问题是在填充数据之前将调用
loadComplete
。此外,就我所知,用
addRowData
填充网格是最慢的方法。您应该对网格的所有数据使用
data
参数,并另外使用
gridview:true
来提高性能。请参阅修改后的演示。

问题在于我的代码中有bug。所以这不是jq网格的问题

你写了“我加了第三个值-1”。你是什么意思?您是使用
addRowData
在客户端再添加一行,还是服务器上的数据被更改,整个网格被重新加载?这是网格的其他设置(
datatype
loadonce
)。您使用哪个版本的jqGrid?在代码中可以看到jqGrid中不存在的选项,如
delUrl
hidePaging
readonly
getRowsUrl
gridSettings
prmSearch
。其他设置,如
loadComplete
postData
cmTemplate
gridSettings
中。所以你发布的代码是绝对不清楚的。Oleg,首先感谢你在其他主题中的回答。我用你的答案解决了很多问题。我们使用一些框架包装jqGrid的默认设置。1.是-我使用addRowData在客户端上又添加了一行。之后抛出事件并显示以前的值。我将网格代码修改为默认视图。代码的最新版本仍然没有包含问题所在的最重要部分:我看不到使用
addRowData
的行。在这张图上,我们可以看到两行。如果你准备了2到3行的完整演示,在那里问题可以重现,那将是最好的。此外,当前代码包含
sortname:'id'
,但不存在
'id'
列。您使用
$('#GetId')
,但不存在HTML片段。您可以从
jQuery(“#list2”)
创建网格,但使用来自$('grid')的警报。jqGrid('getCol',..…什么是
$('grid')
?它甚至不是
$('网格'))
。所以我真的不明白它能为谁工作。你说得有道理。我现在就修改它。你能准确地描述一下你遇到的问题吗。你修改了问题代码,所以我现在的答案与问题不太相符。在问题中,你使用的肯定不是你测试过的代码,也不是有de代码的代码描述的问题。例如,对于
navGrid
,您使用
jQuery(“列表2”)
而不是
jQuery(“网格”)
。仍然不清楚“第三个值”是如何以及何时出现的将被添加到网格中。您是否可以包含相应的代码。最好的是完整的代码,用于重现问题,以及可以保存在文件中的服务器上的JSON数据。-不是您测试的代码,也不是具有所述问题的代码-。我知道。但我们使用的框架未用于此问题。所以我只是将代码格式设置为“默认”视图。-最好的是完整的代码来重现问题,以及可以保存在文件中的服务器上的JSON数据-如果没有想法,我以后会这么做。@IvanKorytin:我知道你使用了一些框架,但我如何帮助你解决问题?如果你在某个演示示例中重现所描述的问题,我会很高兴le将帮助您,您将在原始代码中传递建议。如果您在“添加第三个值”之后编写了此问题发布相应的代码片段是非常重要的。无论如何,你都应该准备重现问题的演示。在准备演示的过程中,你可以自己找到问题的原因,或者其他人可以帮助你完成演示。我的框架默认情况下只隐藏一些字段。它自己不做任何事情。好吗我将尝试为它做演示。
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});