关于处理Easyui-treegrid如何在刷新后保持原折叠状态解决办法

Easyui中的treegrid有一个reload方法,但执行该方法后,会初始化这个树结构。那么之前已经展开的树节点将会被打乱。

想达到的效果:

我展开A节点,并在A节点下增加了一个B子节点,增加成功并页面刷新后,保持A节点已被展开的状态。

思路:

treegrid中有个expand方法,需要传入一个节点ID,效果是展开该节点。如果我们能记录已经被展开的节点,然后在treegrid被reload之后,先将所有节点折叠,然后再对每一个已记录的节点展开。就可以达到上述效果。

首先 需要定义一个数组用于装载记录已展开的节点ID,然后在onBeforeExpand事件时写入被点击的节点ID存入该数组。

之后 在onBeforeCollapse事件中写入该数组删除被点击的节点。

最后 在treegrid的onLoadSuccess事件中写入循环展开已被记录的节点即可。

代码部分:

加上这段代码以后,就可以在每个节点执行新增、删除、修改操作后使用$("#tree").treegrid('reload');方法来执行刷新了,刷新后会保持原折叠状态

你可能感兴趣的:(前端)