如题!
TreeView控件,设置ShowCheckBoxes="All"(即设置复选框),后台进行取值!当选中父节点后,则子节点自动选择。(这一步js已经实现)。问:
如何用javascript获取已选中节点的子节点的值???TreeView只有两级,即只有父节点和子结点。

解决方案 »

  1.   

    既然你都已经可以获得节点了,还不知道怎么获值??
    for(var i =0;i<obj.length;i++)
    {
        return obj[i].value;
    }
      

  2.   

    输出后将节点要取得的值隐藏到node的Text部分,选中时,将隐藏的部分取出并用特殊标记分割放到一个hiddenfield中,然后通过一个服务端属性开放出来就OK了。
      

  3.   

    <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;
                                }
                            }
                        }
                    }
                }
            }