我们可以很方便的用asp.net的方法生成目录树,不过使用过程中也发现一些问题。
比如在节点前可以添加checkbox,然后通过这些checkbox添加一些操作。
改变checkbox状态的事件应该是TreeNodeCheckChanged,但是实际上这个方法在点击checkbox的时候并没有被正确的激发。
解决方法如下。
后台对treeview添加属性:
TreeView1.Attributes.Add("onclick", "AddPostBack()");
前台添加js方法:
function AddPostBackt() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
这样TreeNodeCheckChanged事件可以正确激发了
用e.Node就能取得当前的节点
下面添加下点击某个节点,子节点的选中状态与其保持一致的方法
//选择treeview的节点前的checkbox引发的事件
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count > 0) //判断是否有子节点
{