【发布时间】:2026-02-08 12:10:02
【问题描述】:
高科技大师,
如何在 jqGrid 中只扩展一行?
即当我单击子网格以展开一行时,所有当前展开的列都应折叠。我在子网格创建中添加了“expandOnLoad:false”属性。但不工作。
请给出正确的解决方案。
谢谢, 森提尔B
【问题讨论】:
标签: jqgrid
高科技大师,
如何在 jqGrid 中只扩展一行?
即当我单击子网格以展开一行时,所有当前展开的列都应折叠。我在子网格创建中添加了“expandOnLoad:false”属性。但不工作。
请给出正确的解决方案。
谢谢, 森提尔B
【问题讨论】:
标签: jqgrid
expandOnLoad 的文档指出:
expandOnLoad设置为 true 时,将在加载一组新数据时自动扩展所有行。
这并没有说明在展开另一行时折叠其他行(列?)。
但要回答您的问题 - here 是 Tony 使用 collapseSubGridRow 的编程解决方案:
function(rowid, selected)
{
var rowIds = $("#grid").getDataIDs();
$.each(rowIds, function (index, rowId) {
$("#grid").collapseSubGridRow(rowId);
});
}
您需要在 subGridBeforeExpand 事件上调用它。
【讨论】:
它会在行点击时展开子网格:
onSelectRow: function (pRowId) {
$(outterGrid).jqGrid('toggleSubGridRow', pRowId);
var rowIds = $(outterGrid).getDataIDs();
$.each(rowIds, function (index, rowId) {
if (pRowId != rowId) {
$(outterGrid).collapseSubGridRow(rowId);
}
});
}
,其中 outterGrid 是您正在单击的网格
【讨论】: