0

我正在使用 jqGrid 树网格来显示一些分层数据。我必须实现删除功能,到目前为止做得很好,唯一引起问题的是“当删除特定节点的所有子节点时,该节点应该成为叶节点,即它的图标应该是从箭头变为叶一

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

$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);  
}

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

4

1 回答 1

1

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

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

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

在这种情况下,您将拥有包含所有 TreeGrid 标准的代码,它将在 jqGrid 的下一个版本中工作。

于 2012-05-09T10:21:05.813 回答