您的位置:首页 > 其它

TreeView控件的一些关于节点的CheckBox使用

2012-05-16 15:26 295 查看
我们可以很方便的用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) //判断是否有子节点

{

CheckNode(e.Node);

}

}

//根据节点递归保持此节点的子节点的check状态使之一致

private void CheckNode(TreeNode node)

{

foreach (TreeNode tr in node.ChildNodes)

{

tr.Checked = node.Checked;

if (tr.ChildNodes.Count > 0)

{

CheckNode(tr);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐