jqGrid。带有本地数据和特殊字段的树状网格“;“已加载”;

jqGrid。带有本地数据和特殊字段的树状网格“;“已加载”;,jqgrid,treeview,local,Jqgrid,Treeview,Local,我使用的是带有本地数据的树状网格。我对能够提高网格性能和设计的最佳实践很感兴趣。所以我找到了一个相关的,并且想知道在什么情况下,将未声明的属性“loaded:true”作为数据源传递是有用的。 非常感谢您的回答(特别是@Oleg answer:)。最初实现TreeGrid是为了在jqGrid的隐藏列中保存有关树结构的所有附加信息。后来jqGrid开始支持本地数据,但隐藏列仍然存在于每一行中 旧版本的TreeGrid只能从服务器加载数据。开始时,jqGrid只需要加载根节点(父节点为null)。如

我使用的是带有本地数据的树状网格。我对能够提高网格性能和设计的最佳实践很感兴趣。所以我找到了一个相关的,并且想知道在什么情况下,将未声明的属性“loaded:true”作为数据源传递是有用的。
非常感谢您的回答(特别是@Oleg answer:)。

最初实现TreeGrid是为了在jqGrid的隐藏列中保存有关树结构的所有附加信息。后来jqGrid开始支持本地数据,但隐藏列仍然存在于每一行中

旧版本的TreeGrid只能从服务器加载数据。开始时,jqGrid只需要加载根节点(父节点为
null
)。如果需要扩展节点,那么在使用
treeGridModel:“嵌套的”
)的情况下,将向
url发送带有附加参数
nodeid
parentid
n层
(或
nodeid
n层
)的新Ajax请求。服务器应根据参数返回数据。加载数据并折叠节点后,将使用
display:none
CSS样式隐藏子节点。下次jqGrid不应该再次从服务器加载数据。而不是jqGrid只显示节点的子节点。在这种情况下,父节点的
loaded
列(隐藏列)将保持
true

在使用本地数据创建TreeGrid的情况下,所有工作方式与上述完全相同。遗憾的是,TreeGrid到目前为止还不支持
数据类型:“local”
,但是通过使用
数据类型:“jsonstring”
也可以做到这一点。您在问题中引用的说明了该方法。因为jqGrid(TreeGrid)的结构仍然面向远程加载,所以应该在数据的所有节点上设置
loaded:true
属性。因此,远程TreeGrid可以在不与服务器进行任何额外通信的情况下工作。所有数据将一次加载,但折叠的节点填充将跟随隐藏的子节点

因此,可以说,
loaded:true
属性的使用是一种黑客行为,它允许一次加载所有TreeGrid数据,并在不与服务器进行任何额外通信的情况下对节点进行后期扩展或崩溃