点击treeview的节点时能不能不让页面刷新,而且我还想获取到这个节点的值

解决方案 »

  1.   

    给个例子你,你应该可以解决你的问题
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
    TreeView1.Attributes.Add("onclick", "OnClientTreeNodeChecked(event)");
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
    if (Request.Form["CheckedNode"] != null)
    {
    string CheckedNodeValue = Request.Form["CheckedNode"];
    if (CheckedNodeValue == "")
    return;if (CheckedNodeValue.EndsWith(","))
    CheckedNodeValue = CheckedNodeValue.TrimEnd(',');Response.Write("您选择的节点有:"+CheckedNodeValue);
    }

    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    <script type="text/javascript" language="javascript">
    //识别不同的浏览器
    function getTargetElement(evt) {
        var elem
        if (evt.target)
        {
            elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target
        } 
        else 
        {
            elem = evt.srcElement
        }
        return elem
    }
    function OnClientTreeNodeChecked(evt)
    {
        evt = (evt) ? evt : ((window.event) ? window.event : "");
        if(evt == "")
        {
        return;
        }
        var obj = getTargetElement(evt);
        var hasTreeNode = false;
        if(obj.tagName)
        {
        if (obj.tagName == "INPUT" && obj.type == "checkbox") {
            var treeNode = obj;
            while (obj.tagName != "TABLE")
            {
                obj = obj.parentNode;
            }
        var parentTreeDeep = obj.rows[0].cells.length;
        var parentTreeNode = obj.rows[0].cells[0];
        var oDiv = obj.parentNode;
        if( null == oDiv )
        {
            return;
        }
        if( 1 != oDiv.nodeType)
        {
        return;
        }
        var tables = oDiv.getElementsByTagName("TABLE");
        if( null == tables)
        {
        return;
        }
        var tableCount = tables.length;
        if(tableCount < 1)
        {
        return;
        } 
        for (i = 0; i < tableCount; i++)
        {
            if ( obj == tables[i] )
            {
                hasTreeNode = true;
                i++;
                if (tableCount == i )
                {
                    return;
                }
            }
            if (hasTreeNode)
            {
                var childTreeDeep = tables[i].rows[0].cells.length;
                if (childTreeDeep > parentTreeDeep)
                {
                    var cellTreeNode = tables[i].rows[0].cells[childTreeDeep - 1];
                    var inputs = cellTreeNode.getElementsByTagName("INPUT");
                    if( null != inputs)
                    {
                        inputs[0].checked = treeNode.checked;
                    }
                }
                else
                {
                    return;
                }
            }
        }
    }
    }

    function ShowCheckbox()

    var TreeView = "<%=TreeView1.ClientID %>"
    var checkNode = document.getElementById("CheckedNode")
    var checkboxs = document.getElementById(TreeView).getElementsByTagName("INPUT")
    for(i=0;i<checkboxs.length;i++)
    {
    if(checkboxs[i].type == "checkbox" 
    && checkboxs[i].name.substr(0,TreeView.length) == TreeView
    && checkboxs[i].checked )
    {
    checkNode.value += checkboxs[i].title + ","
    }
    }
    alert(checkNode.value)
    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <asp:TreeView ID="TreeView1" runat="server" ShowLines="true"
    ShowCheckBoxes="All">
    <Nodes>
    <asp:TreeNode Text="【孟子E章】站点一" SelectAction="SelectExpand">
    <asp:TreeNode Text="ASP.NET技术">
    <asp:TreeNode Text="缓存管理" Value="1"/>
    <asp:TreeNode Text="状态管理" Value="2"/>
    <asp:TreeNode Text="导航控件">
    <asp:TreeNode Text="Menu 服务器控件" Value="3" />
    <asp:TreeNode Text="SiteMapPath 服务器控件" Value="4" />
    </asp:TreeNode>
    </asp:TreeNode>
    <asp:TreeNode Text="C#技术" />
    </asp:TreeNode>
    <asp:TreeNode Text="【孟子E章】站点二" />
    <asp:TreeNode Text="【孟子E章】站点三">
    <asp:TreeNode Text="Web开发技术" />
    <asp:TreeNode Text="Web脚本库" />
    </asp:TreeNode>
    </Nodes>
    </asp:TreeView>
    <input type="hidden" name="CheckedNode" id="CheckedNode"/>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" 
    OnClientClick="ShowCheckbox();" Text="提交" />
    <input type="button" id="button2" value="aaa" onclick="ShowCheckbox();" />
    </form>
    </body>
    </html>
      

  2.   

    节点的text不要直接写文字,写HTML代码。比如:
    <div onclick='return false;'>文本</div>
      

  3.   

    比较麻烦,比如你就要学习js或者干脆下载tree的ajax版,你搜索吧