祥宇的技术博客

什么问题都是有原因的

导航

2005的TreeView,选中checkbox框页面不回发的解决方法

Posted on 2007-05-28 12:06  小小  阅读(520)  评论(0编辑  收藏  举报
转载自:简单世界
2003中的TreeView,选中某个节点的checkbox框后,就会自动触发服务器端的事件TreeNodeCheckChanged,而2005中,改变checkbox框的选择状态,只是纯粹的客户端事件,不会触发服务器端事件.只有当页面回发,才会执行相应的TreeNodeCheckChanged事件. 而实际应用中,可能需要改变某个选择框后,回发页面.在网上搜索了一下,终于找到了解决方法.
当点击TreeView后,触发一个脚本,判断点击的对象,如果是checkbox,则强制回发页面.

<asp:TreeView ID="tvList" runat="server"  onclick="ClickTree()" OnTreeNodeCheckChanged="tvList_TreeNodeCheckChanged" ShowCheckBoxes="All"  >
</asp:TreeView>

ClickTree()脚本如下

function ClickTree()
{
    
var o = window.event.srcElement;
    
if (o.tagName == "INPUT" && o.type== "checkbox")
    {
       __doPostBack(
"","");
    } 
}