• 带CheckBox的TreeView网上出错问题解决办法


    问题描述:
    TreeView上传到服务器,预览效果发现节点图片不显示、展开合并功能缺失.
    解决办法:
      以下是我个人的解决办法,最终的效果实现了,但是还有一点点小遗憾,就是页面上有基于微软的调用js的报错信息。
    CheckBox选择JS,代码是网上找的。

     1 <script language="javascript" type="text/javascript">
     2     var Obj_;
     3     document.onclick=function()
     4     {
     5         if(event.srcElement.tagName=="INPUT")
     6         {
     7             Obj_=event.srcElement;
     8             getNextElement(event.srcElement);
     9         }
    10     }
    11     function getNextElement(srcObj)
    12     {
    13         var i=0;
    14         while(srcObj.tagName!="TABLE")
    15         {
    16             srcObj=srcObj.parentNode;
    17             i++;
    18             if(i>20) break;
    19         }
    20         //
    21       
    22         if(srcObj.nextSibling==null)
    23         {
    24             selectParentNode(srcObj);
    25             return;
    26         }
    27         if(srcObj.nextSibling.tagName=="DIV")
    28         {
    29             var targetObj=srcObj.nextSibling;
    30             selectThem(targetObj);
    31         }
    32 //        else if(srcObj.nextSibling.tagName=="TABLE")
    33 //        {
    34 //            //
    35 //        }
    36         selectParentNode(srcObj);
    37     }
    38     function selectThem(targetObj_)
    39     {
    40         var ChexBox_Obj=targetObj_.getElementsByTagName_r("INPUT");
    41         for(var i=0;i<ChexBox_Obj.length;i++)
    42         {
    43             ChexBox_Obj[i].checked=Obj_.checked;
    44         }
    45     }
    46     function selectParentNode(obj)
    47     {
    48         while(obj.parentNode.previousSibling.tagName=="TABLE")
    49         {
    50             //
    51             var parentObj=obj.parentNode;
    52             var ChexBox_brother=parentObj.getElementsByTagName_r("INPUT");
    53             var counter_=0;
    54             for(var i=0;i<ChexBox_brother.length;i++)
    55             {
    56                 if(ChexBox_brother[i].checked) counter_++;
    57             }
    58             //
    59             var parentNContiner=obj.parentNode.previousSibling;
    60             var CheckB=parentNContiner.getElementsByTagName_r("INPUT");
    61             CheckB[0].checked=counter_>0?true:false;
    62             obj=parentNContiner;
    63         }
    64     } 
    65 </script>

    展开、合并JS,网上代码修改

     1 <script language="javascript" type="text/javascript">
     2 function TreeView_ToggleNode(data, index, node, lineType, children) {
     3 var img = node.childNodes[0];
     4 var newExpandState;
     5 try {
     6 if (children.style.display == "none") {
     7 children.style.display = "block";
     8 newExpandState = "e";
     9 img.src = "../../images/parts/tree_folder3.gif";
    10 }
    11 else {
    12 children.style.display = "none";
    13 newExpandState = "c";
    14 img.src = "../../images/parts/tree_folder4.gif";
    15 }
    16 }
    17 catch(e) {}
    18 }
    19 </script>

    页面代码:

    1 <asp:TreeView ID="TreeView_1" ShowCheckBoxes="all" runat="server" ShowExpandCollapse="true" CollapseImageUrl="~/images/parts/tree_folder3.gif" ExpandImageUrl="~/images/parts/tree_folder4.gif" NoExpandImageUrl="~/images/parts/tree_folder3.gif"></asp:TreeView>
  • 相关阅读:
    CSU 1598 最长公共前缀 (简单KMP或者暴力)
    CSU
    HDU 1711 Number Sequence (KMP简单题)
    HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)
    HDU 1116 Play on Words(欧拉回路+并查集)
    POJ 1384 Intervals (区间差分约束,根据不等式建图,然后跑spfa)
    HDU 1165 Eddy's research II(给出递归公式,然后找规律)
    使用kvm虚拟出Centos6.5系统相关步骤
    netstat命令
    Centos6.5安装和使用docker
  • 原文地址:https://www.cnblogs.com/Chaser-Eagle/p/3684676.html
Copyright © 2020-2023  润新知