网上有很多树的例子,感觉都是不太尽如人意。俗话说,自己动手丰衣足食,自己来做一个吧。
首先三态节点树必须是带有CheckBox的树,这里简单说明一下所做的三态树。所谓三态是指:选中状态,半选中状态,未选中状态。选中状态:节点的CheckBox打勾;半选中状态:节点的CheckBox打勾,但为灰色;未选中状态:CheckBox不打勾。
其次,子节点全选中,父节点选中;子节点全不选中,父节点不选中;子节点选中但未全部选中,父节点半选中;子节点半选中,父节点半选中;父节点选中子节点全选中,父节点取消,子节点全取消。
代码如下:客户端(JAVASCRIPT)
当然,仅有客户端的代码是不够的。我们还需要在服务器端构造一棵树。最简单的方法就是从工具箱——〉导航 中将一个TreeView控件拖到页面上。在TreeView的属性——〉行为中的“ShowCheckBox”一项改为“all”,这样,一个带有CheckBox的树就构造成功了。在服务器端的Page_Load下加入代码:
if (!Page.IsPostBack)
}
当然,树中的节点是用户自己添加还是从数据库中读取出来的还是从域中读取出来的这都不是我们讨论的问题,现在,我们的三态树已经大功告成了。你可以手动为树添加几个节点测试一个,代码不需要做修改,按以上步骤COPE到自己页面上就可以用,唯一要改的就是你创建的TreeView的名字,我的代码中的TreeView的名字为TreeView1。有什么问题可以给我留言大家一起讨论。^ ^