//后台绑定数据代码
        TreeOrg.Nodes.Clear();
        _OrgTable = new OrgainzationManager()._SearchOrgTree(MyStateManager.DomainID, MyStateManager.OrgID, "and valid=1");
        DataRow[] rows = _OrgTable.Select("level=1");
        foreach (DataRow row in rows)
        {
            TreeNode node = new TreeNode();
            node.Text = row["name"].ToString();
            node.Value = row["id"].ToString();
            node.SelectAction = TreeNodeSelectAction.Expand;
            node.ShowCheckBox = true;//显示复选框
            node.Checked = row["OffDay_OrgId"].ToString() != "";
            TreeOrg.Attributes.Add("onClick", "client_OnTreeNodeChecked()");
            AddSubNode(node, _OrgTable, node.Checked.ToString());//添加子节点
            TreeOrg.Nodes.Add(node);点击复选框事件
    function client_OnTreeNodeChecked()
    {
        var obj = window.event.srcElement;
        var treeNodeFound = false;
        var checkedState;
        if (obj.tagName == "INPUT" && obj.type == "checkbox")
        {
            var treeNode = obj;
            checkedState = treeNode.checked;
            do
            {
                obj = obj.parentElement;
            } while (obj.tagName != "TABLE")
            var parentTreeLevel = obj.rows[0].cells.length;
            var parentTreeNode = obj.rows[0].cells[0];
            var tables = obj.parentElement.getElementsByTagName("TABLE");
            var numTables = tables.length
            if (numTables >= 1)
            {
                for (i=0; i < numTables; i++)
                {
                    if (tables[i] == obj)
                    {
                        treeNodeFound = true;
                         i++;
                         if (i == numTables)
                        {
                            return;
                        }
                }
                if (treeNodeFound == true)
                {
                    var childTreeLevel = tables[i].rows[0].cells.length;
                    if (childTreeLevel > parentTreeLevel)
                    {
                        var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                        var inputs = cell.getElementsByTagName("INPUT");
                        inputs[0].checked = checkedState;
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
        }
    }function onclickCheck(){
//var OrgNames = ""; //组织结构名称
                var inputObjs = document.getElementById("OrgTree").getElementsByTagName("input");
                
                for (var i = 0; i < inputObjs.length; i++)//遍历树获取选中节点
                {
                    
                    if (inputObjs[i].type == "checkbox") {
                        if (inputObjs[i].checked) {
                            OrgNames = OrgNames + ("'" + inputObjs[i].title + "',");                 //问题就在这里,  inputObjs[i].title 取到的始终为空值  
 }
                    }
                }
                if (OrgNames.length < 1) {
                    alert('请选择组织结构!');
                    Cancel();
                    return false;
                }
alert(OrgNames);
return;
}

解决方案 »

  1.   

    用颜色标出来了居然没变色inputObjs[i].title 取到的始终为空值   这是为啥
      

  2.   

    <asp:TreeView ID="TreeView1" runat="server" onclick="javascript:client_OnTreeNodeChecked();" NodeIndent="10" ShowCheckBoxes="All" ShowLines="True">  
    function checkParent (obj)  
      {  
      while(obj != null)  
      {  
      var tagName = obj.tagName.toLowerCase();  
      if(tagName == "div" && obj.id == "TreeView1")  
      {  
      return;  
      }  
        
      if(tagName == "table")  
      {  
      var checkBox = obj.getElementsByTagName("INPUT");  
      if(checkBox.length >0)  
      {  
      checkBox[0].checked = true;  
      }  
      obj = obj.parentElement.previousSibling;  
      }  
      else  
      obj = obj.parentElement;  
      }  
      }  
        
      function client_OnTreeNodeChecked()  
      {  
      var obj = window.event.srcElement;  
      var treeNodeFound = false;  
      var checkedState;  
      if (obj.tagName == "INPUT" && obj.type == "checkbox")  
      {  
      var treeNode = obj;  
      checkedState = treeNode.checked;  
        
      if(checkedState)  
      {  
      checkParent(obj);  
      }  
        
      do  
      {  
      obj = obj.parentElement;  
      }  
      while (obj.tagName != "TABLE")  
        
      var parentTreeLevel = obj.rows[0].cells.length;  
      var parentTreeNode = obj.rows[0].cells[0];  
        
      var tables = obj.parentElement.getElementsByTagName("TABLE");  
      var numTables = tables.length  
      if (numTables >= 1)  
      {  
      for (i=0; i < numTables; i++)  
      {  
      if(tables[i] == obj)  
      {  
      treeNodeFound = true;  
      i++;  
      if(i == numTables)  
      {  
      return;  
      }  
      }  
      if (treeNodeFound == true)  
      {  
      var childTreeLevel = tables[i].rows[0].cells.length;  
      if (childTreeLevel > parentTreeLevel)  
      {  
      var cell = tables[i].rows[0].cells[childTreeLevel - 1];  
      var inputs = cell.getElementsByTagName("INPUT");  
      inputs[0].checked = checkedState;  
      }  
      else  
      {  
      return;  
      }  
      }  
      }  
      }  
      }  
      }  

    foreach(TreeNode no  in this.tvMenu.Nodes) 
                { 
                    GetTree(no); 
                    GetChildTree(no); 
                } 
    private void GetTree(TreeNode node) 
            { 
                if (node.Checked == true) 
                { 
                  int i=int.Parse(node.Value.ToString().Trim());                
                }         } 
    rivate void GetChildTree(TreeNode node) 
            { 
                foreach (TreeNode nd in node.ChildNodes) 
                { 
                    if (nd.Checked) 
                    { 
                    
                    } 
                    if(nd.ChildNodes.Count >0) 
                        GetChildTree(nd); 
                } 
            }
      

  3.   

    cs:TreeOrg
    js: var inputObjs = document.getElementById("OrgTree").getElementsByTagName("input");
       又是OrgTree...是不是id写错了?