如何在jqGrid Tree Grid中删除所有子节点时更改父节点的图标

时间:2012-05-09 09:48:14

标签: jquery jqgrid

我正在使用jqGrid Tree网格来显示一些分层数据。我要实现删除功能,到目前为止它已经做得很好,只有导致问题的是“是当特定节点的所有子节点被删除时,该节点应该成为叶子节点,即它图标应该从箭头改为叶子

我正在使用以下代码从网格中删除节点

$trackerGrid.jqGrid('delTreeNode', actoinItemEntityId);
var record = getRowRecord(baseId);
var siblingArray = $trackerGrid.jqGrid('getNodeChildren', record);

if(!siblingArray || !siblingArray.length) {                                         

    $trackerGrid.jqGrid('collapseNode', record);
    setLeafColumnValue(baseId, false);  
}

节点被成功删除,但父图标不会改变,图标仍然是展开节点的图标。有人对此有任何想法吗?

1 个答案:

答案 0 :(得分:1)

在常见情况下,TreeGrid中没有子节点的节点与Leaf不同。您可以将节点视为文件夹,将叶子视为文件。即使您从文件夹中删除所有文件,它也将保留文件夹,并且不会转换为文件。

如果在您的用例中您描述的行为有意义,我建议您执行以下操作:

  • 从空节点获取当前数据。我认为您可以使用getLocalRow通过rowid获取本地data;
  • 删除现在没有子节点的节点;
  • 然后使用addChildNode使用与之前相同的数据添加新节点,但使用isLeaf: true

如果您拥有包含TreeGrid所有标准的代码,它将在下一版本的jqGrid中运行。