【问题标题】:JqGrid reloadGrid keep colapse expand SubgridJqG​​rid reloadGrid 保持折叠展开子网格
【发布时间】:2012-06-13 15:44:16
【问题描述】:

我有一个包含子网格的网格。两个网格都有一个复选框列。当我单击父复选框时,它会自动选中/取消选中所有子网格复选框。 所有复选框都映射到一个 DB 值,因此每次状态更改时,它都会更改 DB 中的值,我重新加载网格以更新复选框状态。

问题是,当我重新加载网格时,我会松开扩展的子网格,这很烦人,因为每次单击复选框时都会重新加载网格...

有没有办法在重新加载网格时保持哪一行的状态?

这是我的部分代码:

$('#jqgSearchTaxPayer').jqGrid({
                        ....
                        subGrid: true,
                        subGridRowExpanded: function (sendSubGrid, lineId) {
                            var sendSubGridId;
                            sendSubGridId = sendSubGrid + "_t";
                            $("#" + sendSubGrid).html("<table id='" + sendSubGridId + "' class='scroll'></table>");

                            $("#" + sendSubGridId).jqGrid({
                                ....

                            { name: 'Keep', index: 'Keep', width: '9px', align: 'center',
                                editable: true, edittype: 'checkbox',
                                formatter: function (cellvalue, options, rowObject) {
                                    cellvalue = cellvalue + "";
                                    cellvalue = cellvalue.toLowerCase();
                                    var bchk = " checked=\"checked\"";
                                    if (cellvalue == "false") {
                                        bchk = "";
                                    }
                                    return "<input type='checkbox' onclick=\"SendLineChecked('" + options.rowId + "','" + sendSubGrid + "');\" " + bchk + " value='" + cellvalue + "' offval='no' />";
                                }, formatoptions: { disabled: false }
                            }],
                                ....

提前感谢您的帮助!

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    我找到了一个受post启发的解决方案。

    声明一个函数,它将获取当前展开的所有行并触发重新加载

    var scrollPosition = 0;
    var ids = [];
    
    function RefreshGridData() {
        var num;
        ids = new Array();
        $("#jqgSearchTaxPayer tr:has(.sgexpanded)").each(function () {
            num = $(this).attr('id');
            ids.push(num);
        });
        $("#jqgSearchTaxPayer").trigger("reloadGrid");
    }
    

    在主网格的GridComplete()函数中,解析行集合并展开

    gridComplete: function () {
                                 for (var j = 0; j < ids.length; j = j + 1) {
                                     $("#jqgSearchTaxPayer").jqGrid('expandSubGridRow', ids[j]);
                                 }
                             },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2011-01-12
      • 1970-01-01
      相关资源
      最近更新 更多