如何响应TreeView中的OnTreeNodeCheckChanged事件

ASP.net的TreeView控件,设置ShowCheckBox="All",可以显示每个节点的复选框。如果想在选中☑子节点后,立即自动选中☑其父节点及其所有祖先节点,仅通过TreeNodeCheckChanged事件,是无法响应相关代码的。

原因是,TreeNodeCheckChanged事件:TreeView 控件的复选框在向服务器的两次发送过程之间状态有所更改时发生。TreeNodeCheckChanged是服务器端事件。 在单击复选框后,并没有向服务器传递复选框被改变的信息。如果再点击子节点文本,响应选中节点被改变事件SelectedNodeChanged后,会同时响应TreeNodeCheckChanged事件。

无效方法:AutoPostBack设为true。【这个对GridView中的复选框有效。】EnableClientScript设为true。直接添加οnclick='ClickTree()'。网上的正确答案不好找。

有效方法:

aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
    {
        TreeView1.Attributes.Add("onclick", "postBackByObject()");

    }

protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
    {
        //string str=e.Node.ValuePath;

        //其他处理代码
    }

aspx中:

<head runat="server">

<script type="text/javascript">
    function postBackByObject()
{
        __doPostBack("","");
}
</script>

</head>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值