总结这次的工作,明白了几个关键的地方:
1.JavaScript中的确可以直接引用.Net服务器端控件,但是问题在于,控件的ID在编译后会自动加上名字空间,所以这里要特别注意。
2.使用JavaScript可以使对TreeView的操作不需要再PostBack,十分方便有效。
3.空间状态的显示和实际存储是有区别的,一定要十分注意。
需要在C#文件中加入:
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法TreeView.Attributes.Add("oncheck""tree_oncheck()");

主要的JavaScript代码如下:
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法<script language="javascript">
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
<!--
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
function tree_oncheck()
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法{
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    
var node = TreeView.getTreeNode(event.treeNodeIndex);
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    
var Pchecked = node.getAttribute("checked");
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    setcheck(node, Pchecked);
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    TreeView.queueEvent('oncheck', node.getNodeIndex());
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法}
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
function setcheck(node, Pc)
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法{
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    
var ChildNode = new Array();
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    ChildNode 
= node.getChildren();
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    
if (parseInt(ChildNode.length) != 0)
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    {
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法        
for (var i = 0; i < ChildNode.length; i++)
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法        {
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法            
var cNode = ChildNode[i];
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法            
if (cNode.getAttribute("checked"!= Pc)
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法            {
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法                
if (parseInt(cNode.getChildren().length) != 0)
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法                    setcheck(cNode, Pc);
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法                cNode.setAttribute(
"checked", Pc);
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法                TreeView.queueEvent('oncheck', cNode.getNodeIndex());
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法            }
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法        }
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法    }
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法}
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
//-->
(转)解决TreeView中使用JavaScript完成CheckBox全选的办法
</script>

整个功能的实现需要修改微软treeview控件的一个Bug 
需要修改inetpub\wwwroot\webctrl_client\1_0\treeview.htc。
把function doCheckboxClick(el)中的第一行,
el.checked = !el.checked;
改成:
el.checked = !el.getAttribute("checked");




博主注:这篇文章讲到的方法经本人试用会出错,较完善的解决方法见 TreeView父子联动效果保持节点状态一致

相关文章:

  • 2021-11-02
  • 2021-07-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-10
  • 2022-01-30
  • 2022-12-23
  • 2022-02-12
  • 2021-07-16
  • 2022-12-23
相关资源
相似解决方案