ExtJS的树用过好多次了,但是今天是第一次用加复选框的,要实现的效果是这样的:点击页面上的“自选”按钮,弹出一个窗口,窗口上有一棵树和一个Grid,选择树节点时向Grid里添加数据,取消选择树节点时将Grid里面对应的记录删掉,而且选择或取消选择父节点时可以将其子节点的数据从Grid中添加或删除。

去除其他无关代码,主要代码如下:
前台JS:
取树节点的文件ComTree.ashx中的相关代码:
ComTree.ashx文件中返回数据的格式(即节点数据的格式)是:[{text:'',id:''},{text:'',id:''}],text和id是必须的,分别是节点的id和显示文字,还有一个icon,是节点前的小图标的URL,如果返回了icon,就会把默认的小图标换成返回路径的图标。
当勾选或取消了一个节点时,我是采用遍历的方法来操作数据的,那么问题来了,如果所选的是一个叶子节点,直接操作该条数据即可,但是如果选择的是一个非页节点的节点,并且该节点有很多子节点,一个一个遍历来操作子节点对应的数据这种法则速度会很慢,不知道有没有人知道更好的方法。
本文介绍如何在ExtJS中使用带有复选框的树控件实现数据的增删功能。通过点击“自选”按钮弹出窗口,窗口内包含一棵可选择节点的树和一个Grid,用于展示选中项。文章详细描述了通过遍历树节点进行数据操作的过程及存在的性能问题。
756

被折叠的 条评论
为什么被折叠?



