jqgrid 4.6 树形结构 设置多选
时间: 2023-07-22 16:26:29 浏览: 68
在 jqGrid 4.6 版本中,启用树形网格的方式略有不同。需要将 `gridview` 选项设置为 `false`,以便 jqGrid 正确处理树形结构。此外,需要将 `treeGrid` 选项设置为 `true`,以启用树形网格功能。例如:
```
$("#myGrid").jqGrid({
url: "myData.json",
datatype: "json",
colModel: [
{ name: "id", label: "ID", width: 50 },
{ name: "name", label: "Name", width: 100 },
{ name: "address", label: "Address", width: 150 }
],
gridview: false, // 关闭 gridview
treeGrid: true, // 启用树形网格
ExpandColumn: "name", // 显示展开/收起图标的列名
multiselect: true, // 启用多选
rowNum: 10,
rowList: [10, 20, 30],
pager: "#myPager",
caption: "My Grid"
});
```
在启用多选功能后,可以使用 `getGridParam('selarrrow')` 方法获取当前选中的行的 ID 数组。但是,在树形结构中,如果用户选择了一个父节点,则该节点下的所有子节点都会被选中。为了避免这种情况,需要使用 `getTreeSelectedRows` 方法来获取当前选中的行的 ID 数组。此方法将返回一个数组,其中包含所有当前选中行的 ID,但不包括其子节点的 ID。例如:
```
var selectedRows = $("#myGrid").jqGrid('getTreeSelectedRows');
```
注意,在使用 `getTreeSelectedRows` 方法时,需要将 `treeGrid: true` 和 `multiselect: true` 选项同时设置为 `true`,才能正确获取选中的行的 ID 数组。