Jqgrid treegrid逐行滚动到行ID,并在折叠时展开节点

场景是一个加载了所有节点的Jqgrid treegrid,其中一些已折叠,其中一些因用户交互而展开。 现在需要根据行ID滚动到特定行,如果行在折叠节点内,则展开节点直到用户可以看到行。 任何提示?

要展开TreeGrid的节点,可以使用expandRow 。 另外还应该制作一个循环并展开该行的所有父节点。 可以使用getNodeParent来获取直接父级。 另外,应该使用scrollrows: true选项将网格滚动到选定的行。

生成的演示允许选择需要选择的rowid行。 单击“按ID选择行”按钮可执行以下操作:

在此处输入图像描述

单击我在演示中使用的事件句柄,您将在下面看到

 $("#selectId").button().click(function () { var idToSelect = $("#selectedId").val(), // id of the row which need be selected localRowData = $grid.jqGrid("getLocalRow", idToSelect); while (localRowData.parent !== null && localRowData.parent.toUpperCase() !== "NULL") { localRowData = $grid.jqGrid("getNodeParent", localRowData); $grid.jqGrid("expandRow", localRowData); } // we use scrollrows: true option so the selection below // will scroll the grid to the selected row additionally $grid.jqGrid("setSelection", idToSelect); });