微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – JqGrid reloadGrid保持colapse扩展Subgrid

我有一个包含subGrid的Grid.两个网格都有一个CheckBox列.当我单击父复选框时,它会自动选中/取消选中所有子网格复选框.
所有复选框都映射有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 }
                            }],....

在此先感谢您的帮助!

解决方法

我找到了一个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]);
                             }
                         },

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐