当前位置:编程学习 > C#/ASP.NET >>

asp.net 2.0 使用treeview 如何利用javascript取得已选择节点

使用asp.net2.0中的treeview控件,已经实现后台从数据库读取数据并组装成tree,客户端利用javascript进行父子check联动,由于是利用客户端javascript进行的check,所以:
问题1:
如何在服务端取得客户端已选择的节点的value?很多人说客户端使用javascript无法与服务段通信。
问题2:
如果实在不行,准备将所有页面上的元素利用javascript发送到处理页面,可是不知道如何获得客户端的treeview已选择的node。
问题3:
如何实现tree的编辑,包括节点的添加,删除,移动,等等,并且,如何将结果保存到后台数据库中(这个应该在后易做图成,用javascript可以进行前台的编辑,但是不知道如何在后台保存到数据库)。
谢谢大家了。 --------------------编程问答-------------------- 如果分数不够可以另加。 --------------------编程问答-------------------- 顶一顶 --------------------编程问答-------------------- 我现在打算用ext的tree,完全的ajax控件。 --------------------编程问答-------------------- 搂主可以参观一下我的网站,用的是Asp.net的treeview,不过我现在打算抛弃Asp.net的treeview而改用ext的tree,这可是完全的ajax控件。建议搂主也不妨看看ext.
http://www.addtoo.net/Visitor/Manage.aspx --------------------编程问答-------------------- 这个有点难度,先up一下。 --------------------编程问答-------------------- 问题1: 
如何在服务端取得客户端已选择的节点的value?很多人说客户端使用javascript无法与服务段通信。 
问题2: 
如果实在不行,准备将所有页面上的元素利用javascript发送到处理页面,可是不知道如何获得客户端的treeview已选择的node。
------------------------------------------
找到以后就可以放到数组中,存到隐藏变量里,服务器就可以取出来处理了。
问题3。
太麻烦了。。。。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>無題</title>
    <script type="text/javascript">
    function GetSelectedNodeValue()
    {
        var objTree=document.getElementById("TreeView1");
        if(objTree)
        {
            var objTreeNode=objTree.getElementsByTagName('INPUT');
            if(objTreeNode)
            {
                for( var  i=0;i<objTreeNode.length;i++)
                {
                    if(objTreeNode[i].type="checkbox")
                    {
                        if(objTreeNode[i].checked)
                        {
                            var s = objTreeNode[i].nextSibling.href
                            alert(s);
                            if(s.indexOf("\\") == -1)
                            {        
                              s = s.substr(0,s.lastIndexOf("'"))
                              s  = s.substr(s.lastIndexOf("'")+2)
                            }
                            else
                            {
                             s = s.substr(s.lastIndexOf("\\") + 1,s.lastIndexOf("'") - s.lastIndexOf("\\") - 1)
                            }
                            alert(s);

                        }
                    }
                }
            }
        }
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="True">
            <Nodes>
                <asp:TreeNode Text="TextA" Value="ValueA">
                    <asp:TreeNode Text="Textaa" Value="Valueaa">
                        <asp:TreeNode Text="Textaaa1" Value="Valueaaa1"></asp:TreeNode>
                        <asp:TreeNode Text="Textaaa2" Value="Valueaaa2"></asp:TreeNode>
                    </asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="TextB" Value="ValueB">
                    <asp:TreeNode Text="Textbb" Value="Valuebb"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="TextC" Value="ValueC"></asp:TreeNode>
            </Nodes>
        </asp:TreeView>
    
    </div>
        <input id="Button1" type="button" value="button" onclick="GetSelectedNodeValue()" />
    </form>
</body>
</html>

--------------------编程问答-------------------- 我也有这样的疑问,项一个 --------------------编程问答-------------------- 通过隐藏域获取选择的节点
--------------------编程问答-------------------- function postBackByObject()
{
    var o = window.event.srcElement;
    if (o.tagName == "INPUT" && o.type == "checkbox")
    {
       __doPostBack("","");

    } 
}
</script> 

补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,