Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery jqgrid自动刷新子网格问题_Jquery_Ajax_Jquery Plugins_Jqgrid_Jqgrid Php - Fatal编程技术网

Jquery jqgrid自动刷新子网格问题

Jquery jqgrid自动刷新子网格问题,jquery,ajax,jquery-plugins,jqgrid,jqgrid-php,Jquery,Ajax,Jquery Plugins,Jqgrid,Jqgrid Php,目前,我使用以下代码刷新网格: setInterval(function(){ jQuery("#grid").trigger("reloadGrid"); },10000); 它工作得很好。但我需要一个扩展子网格的解决方案。刷新栅格时,展开的子栅格将关闭 有没有办法在不关闭展开的子网格的情况下刷新网格?看起来正在将TR类从sgcollapsed更改为sgexpanded。我认为您可以保留一个在刷新之前打开的tr数组,然后在刷新之后重新打开它们 我对jqGrid知之甚少,但我想我会发布这篇文

目前,我使用以下代码刷新网格:

setInterval(function(){  jQuery("#grid").trigger("reloadGrid"); },10000);
它工作得很好。但我需要一个扩展子网格的解决方案。刷新栅格时,展开的子栅格将关闭

有没有办法在不关闭展开的子网格的情况下刷新网格?

看起来正在将TR类从sgcollapsed更改为sgexpanded。我认为您可以保留一个在刷新之前打开的tr数组,然后在刷新之后重新打开它们


我对jqGrid知之甚少,但我想我会发布这篇文章,因为它似乎从聊天中为您指出了正确的方向。

这是一个老问题,但我也遇到了同样的问题,所以我想分享一下我所做的。埃努斯丹的答案是正确的。在我的例子中,我向subGridRowExpanded和subGridRowCollapsed事件添加了代码,以存储已展开行的行ID(我一次只允许展开一行,但也可以使用集合)。然后,我向loadComplete事件添加代码,以便表重新打开回发后折叠的行。这一点是显而易见的,但这里有两个关键因素: 1.由于某种原因,重新扩展子网格不会导致其数据被持久化。所以我不得不回到服务器去拿它。为此,我重新提交了子网格行(该行的网格id为下划线和rowid)。 2.出于某种原因,您必须使用计时器并在延迟后扩展子网格(即使1ms似乎也能工作)。这就像在loadComplete事件本身期间无法扩展网格一样,但是如果您等待一点时间,它就可以正常工作

所以像这样:

var expandSubGrid = function(){

    $('#grid').jqGrid('expandSubGridRow', expandedRowID);
    $('#grid_' + expandedRowID).trigger('reloadGrid');
};


//the loadComplete event handler which was wired up when I created the grid
var grid_loadComplete = function () {
    //expand the subgrid
    window.setTimeout(expandSubGrid, 1);
};