2003中的TreeView,选中某个节点的checkbox框后,就会自动触发服务器端的事件TreeNodeCheckChanged,而2005中,改变checkbox框的选择状态,只是纯粹的客户端事件,不会触发服务器端事件.只有当页面回发,才会执行相应的TreeNodeCheckChanged事件. 而实际应用中,可能需要改变某个选择框后,回发页面.在网上搜索了一下,终于找到了解决方法.
当点击TreeView后,触发一个脚本,判断点击的对象,如果是checkbox,则强制回发页面.
ClickTree()脚本如下
当点击TreeView后,触发一个脚本,判断点击的对象,如果是checkbox,则强制回发页面.
1
<
asp:TreeView ID
=
"
tvList
"
runat
=
"
server
"
onclick
=
"
ClickTree()
"
OnTreeNodeCheckChanged
=
"
tvList_TreeNodeCheckChanged
"
ShowCheckBoxes
=
"
All
"
>
2 </ asp:TreeView >
2 </ asp:TreeView >
ClickTree()脚本如下
function
ClickTree()
{
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type== "checkbox")
{
__doPostBack("","");
}
}
{
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type== "checkbox")
{
__doPostBack("","");
}
}