我有一个包含subGrid的Grid.两个网格都有一个CheckBox列.当我单击父复选框时,它会自动选中/取消选中所有子网格复选框.
所有复选框都映射有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 } }],....
在此先感谢您的帮助!
解决方法
我找到了一个受
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 举报,一经查实,本站将立刻删除。