我想知道用户单击了哪个节点  或者说用户单击了墨个节点,我想做传些参数(每个节点参数都不一样)给节点导航的页面  
怎么做  大家有什么好方法阿

解决方案 »

  1.   

    Sub OnSelectedIndexChanged) sender as Object, e as TreeViewSelectEventArgs)
        
    //在这里写你的代码,也许你还要用到e.NewNode.ToString()和e.OldNode.ToString();来处理你要达到的目的,我没有写,但是你可以在这里由这两个属性来判断你的节点是哪个被点击了,我只能说到这了,END Sub这个事件是用户点击了TreeView 控件来改变活动节点时生成的,可以用这个事件控制格式并决定所选的节点内容,也可以写你的处理过程
      

  2.   

    .NavigateUrl = ""不就可以添加吗?
      

  3.   

    用 .NavigateUrl = ""
    再配上查询字符串不就搞定了!
      

  4.   

    如上。!
    我们做的是把结点信息都存在数据库中,包括NavigateUrl属性。
      

  5.   

    回复
    :我想要传递的参数时根据节点的名称然后到xml文件中去取的,所以用navigateurl行不通吧 不知道大家有何高见?
      

  6.   

    auto postback
    just like onclick event:
    Page.RegisterStatupScript("open ","top.frames.frame('xxx').location='yyyyy'+'name of yyy'")
      

  7.   

    可以将你的参数值放在nodedata中,然后在selectedindexchanged事件中判断选中的结点,然后取该结点的nodedata值就ok了
      

  8.   

    在Node.NavigateUrl 中写入参数
      

  9.   

    <script language="javascript">
    function show(obj){
    var clickedNode = MainTreeView.getTreeNode(obj.clickedNodeIndex); 
    if (clickedNode==null) {}
    else{
    var clickedNodeText = clickedNode.getAttribute("text"); 
    var clickedNodeId = clickedNode.getAttribute("ID");
    parent.document.frames(1).AreaSel(clickedNodeId);
    }
    }
    </script>
    <iewc:treeview id="MainTreeView" style="Z-INDEX: 101; LEFT: 0px;  TOP: 0px"
    runat="server" Height="100%" width="100%" onclick="javascript:show(this);" ImageUrl=".\IMG\GraphBtn\+.bmp"></iewc:treeview>
      

  10.   

    ''生成树的函数
        Private Sub inittree(ByRef Nds As Microsoft.Web.UI.WebControls.TreeNodeCollection, ByVal parentId As Integer)
            Dim dv As New DataView()
            Dim dvrow As DataRowView
            Dim tmpNode As Microsoft.Web.UI.WebControls.TreeNode
            ''intId为数值型变量,其作用是记录并传递当前记录的ID,做为它子节点的PARENTID值
            Dim intId As Integer
            dv.Table = mySet.Tables("paybasic")
            ''parentId传递的是 additem函数中的intId.下面语句的作用是找出当前节点的子孩子集合。 
            dv.RowFilter = "parentID=''" & parentId & "''"
            ''如果当前节点有孩子,则遍历所有的孩子,并调用递归函数。
            For Each dvrow In dv
                tmpNode = New Microsoft.Web.UI.WebControls.TreeNode()
                ''为当前节点的各个属性赋值。
                tmpNode.ID = dvrow("nodeID")
                tmpNode.Text = dvrow("nodename")
                tmpNode.NavigateUrl = dvrow("Address")
                intId = dvrow("parentID")
                ''添加一个节点
                Nds.Add(tmpNode)
                ''调用递归函数
                inittree(Nds(Nds.Count - 1).Nodes, intId)
            Next
    End Sub
    ――――――――――――――――调用递归函数――――――――――――――――――
    CreateReaderDataSet()
    inittree(Treepaybasic.Nodes, 999)
      

  11.   

    1。直接用 Node.NavigateUrl 负值就行2。或者和xml文件绑定 
    给你个xml文件作例子
    <?xml version="1.0" encoding="utf-8" ?> 
    <TREENODES>

    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Baby Diary" NavigateURL="Pregnancy/Daily.aspx?flag=2" target="mainpage"  />

    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Delivery Details"  NavigateURL="Baby/DeliveryDetails.aspx" target="mainpage">
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Baby Observations"  NavigateURL="Baby/Observations.aspx" target="mainpage"  />
    </TREENODE>
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Baby Outcomes"  NavigateURL="Baby/BabyOutcomes.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Infant Feeding"  NavigateURL="Baby/InfantFeeding.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Baby Medications"  NavigateURL="Patient/MedicationList.aspx?FromTo=BAB" target="mainpage"  />

    <TREENODE ImageUrl="images\newicon\t-2.ico" TEXT="Complications"  NavigateURL="fetal/BabyComplicationsIndex.aspx" target="mainpage"  >
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Maternal Factors"  NavigateURL="fetal/ComplicationsMaternal.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Birth Trauma"  NavigateURL="fetal/ComplicationsBirthTrauma.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Respiratory and Cardiovascular"  NavigateURL="fetal/ComplicationsRespiratory.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Infections"  NavigateURL="fetal/ComplicationsInfections.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Haematological"  NavigateURL="fetal/ComplicationsHaematological.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Endocrine and Metabolic"  NavigateURL="fetal/ComplicationsEndocrineMetabolic.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Digestive System"  NavigateURL="fetal/ComplicationsDigestive.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Temperature Regulation"  NavigateURL="fetal/ComplicationsTemperature.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico"  TEXT="Other"  NavigateURL="fetal/ComplicationsOther.aspx" target="mainpage"  />
    </TREENODE>
    <TREENODE ImageUrl="images\newicon\t-2.ico" TEXT="Defects"  NavigateURL="fetal/BabyDefectsIndex.aspx" target="mainpage"  >
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Nervous System"  NavigateURL="fetal/DefectsNervous.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Eye, Ear, Face and Neck"  NavigateURL="fetal/DefectsHead.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Circulatory System"  NavigateURL="fetal/DefectsCirculatory.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Respiratory System"  NavigateURL="fetal/DefectsRespiratory.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Cleft Lip and Cleft Palate"  NavigateURL="fetal/DefectsCleft.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Digestive System"  NavigateURL="fetal/DefectsDigestive.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Genital Organs"  NavigateURL="fetal/DefectsGenital.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Urinary System"  NavigateURL="fetal/DefectsUrinary.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Musculoskeletal System"  NavigateURL="fetal/DefectsMusculoskeletal.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Chromosomal"  NavigateURL="fetal/DefectsChromosomal.aspx" target="mainpage"  />
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Other"  NavigateURL="fetal/DefectsOther.aspx" target="mainpage"  />
    </TREENODE>
    <TREENODE ImageUrl="images\newicon\t-9.ico" TEXT="Baby Discharge"  NavigateURL="Baby/BabyDischarged.aspx" target="mainpage"  />
    </TREENODES>
      

  12.   

    你的问题并不是很难,你要整理清楚思路!结点的属性很多但唯一能区分结点的属性就是TreeView的ID属性!  string IDstr = TreeView1.GetNodeFromIndex(e.NewNode).ID;  //e是treeview的SelectedIndexChange事件里的参数! TreeView1.GetNodeFromIndex(e.NewNode).XX  //XX是TreeView的任意属性!应用这个方法及其相关的属性应该能实现你的问题---参数的传递!
      

  13.   

    只要找到了结点的主键(ID)再应用结点的属性NavigateURL 和Target就可以进行相应的导航!
      

  14.   

    1.下载地址
    http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
    下载后是后缀为bat的版本
    (1)bulid.将bulid.bat的路径指向csc.exe所在路径,生成Microsoft.Web.UI.WebControls.dll。
    (2)在wwwroot下创建空目录webctrl_client\1_0。
    (3)将build\Runtime下的文件拷至webctrl_client\1_0下。
    (4)选择工具箱的自定义工具箱,添加Microsoft.Web.UI.WebControls.dll。
    有些麻烦
    但如果你能找到后缀是msi的自动安装版本,直接下一步就行(我一直用这个版本,hoho)
    安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里2.运行时无法显示
    一般是TreeView的版本问题,最好下载英文版自动安装版本重新安装,安装前应该先到添加删除程序里卸掉原版本3.显示格式出错(非树状显示)
    TreeView要求客户端浏览器版本为IE5.5及以上,最好要求客户端升级为IE6.04.框架里使用TreeView
    设置NavigateUrl、Target属性,可更新另外的Frame5.找不到TreeNode类
    使用TreeView,最好添加namespace:using Microsoft.Web.UI.WebControls;6.遍历TreeView节点(递归算法)
    private void Page_Load(object sender, System.EventArgs e)
    {
     GetAllNodeText(TreeView1.Nodes);
    }
    void GetAllNodeText(TreeNodeCollection tnc)
    {
     foreach(TreeNode node in tnc)
     {
      if(node.Nodes.Count!=0)
       GetAllNodeText(node.Nodes);
      Response.Write(node.Text + " ");
     }
    }7.得到node结点的父节点
    TreeNode pnode;
    if(node.Parent is TreeNode)
     pnode=(TreeNode)node.Parent;
    else
     //node is root node8.修改TreeView样式(示例)
    <iewc:TreeView id="TreeView1" runat="server" HoverStyle="color:blue;background:#00ffCC;" DefaultStyle="background:red;color:yellow;" SelectedStyle="color:red;background:#00ff00;">
    用代码:
    TreeView1.DefaultStyle["font-size"] = "20pt";9.展开时不提交,改变选择节点时才提交
    将autopostback设置成false;  
    在body里添加  <body  onload="initTree()">  
    然后在PageLoad里写:  
    string  strTreeName  =  "TreeView1";  
    string  strRef  =  Page.GetPostBackEventReference(TreeView1);  
    string  strScript  =  "<script  language=\"JavaScript\">  \n"  +  "<!--  \n"  +  "            function  initTree()  {  \n"  +"                        "  +  strTreeName  +  ".onSelectedIndexChange  =  function()  {  \n"  +    "if  (event.oldTreeNodeIndex  !=    
    event.newTreeNodeIndex)  \n"  +  "this.queueEvent('onselectedindexchange',  event.oldTreeNodeIndex  +  ','  +  event.newTreeNodeIndex);  \n"  +    "window.setTimeout('"  +  strRef.Replace("'","file://'/")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>";  
    Page.RegisterClientScriptBlock("InitTree",strScript  );  
     
    这样就只有你点击的节点更改的时候才提交!10.TreeView结合XML
    把XML文件设置为如下格式,然后直接设置TreeNodeSrc为该XML文件就行
    <?xml version="1.0" encoding="GB2312"?>
    <TREENODES>
     <TREENODE TEXT="node0" EXPANDED="true">
      <TREENODE TEXT="node1"/>
      <TREENODE TEXT="node2"/>
     </TREENODE>
     <TREENODE TEXT="node3" NavigateURL="3.aspx"/>
    </TREENODES>
    或者用代码
    TreeView1.TreeNodeSrc="a.xml";
    TreeView1.DataBind(); 客户端控制TreeView
    http://expert.csdn.net/Expert/topic/1382/1382892.xml1.设置所选节点,如选中第二个节点
    function SetSelNode()
    {
     TreeView1.selectedNodeIndex="1";
    }2.得到所选节点的Text,ID或NodeData
    function GetAttribute()
    {
     alert(TreeView1.getTreeNode(TreeView1.selectedNodeIndex).getAttribute("Text"));
    }
    替换Text为ID或NodeData,可分别得到所选节点的ID或NodeData3.修改节点属性,如修改第一个节点的Text
    function ModifyNode()
    {
     var node=TreeView1.getTreeNode("0");
     node.setAttribute("Text","hgknight");
    }4.得到点击节点
    function TreeView1.onclick()
    {
     alert(TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("Text"));
    }5.添加节点
    function AddNode()
    {
     var node=TreeView1.createTreeNode();
     node.setAttribute("Text","hgknight");
     TreeView1.add(node);    
    }6.js遍历所有节点
     var AllRootNode=new Array();
     AllRootNode=TreeView1.getChildren();
     AlertNode(AllRootNode);    function AlertNode(NodeArray)
     {
      if(parseInt(NodeArray.length)==0)
       return;
      else
      {
       for(i=0;i<NodeArray.length;i++)
       {
        var cNode;
        cNode=NodeArray[i];
        alert(cNode.getAttribute("Text"));
        if(parseInt(cNode.getChildren().length)!=0)
         AlertNode(cNode.getChildren());    
       }
      }
     }
      

  15.   

    给你一段代码参考://创建数据集
    private DataSet CreateDataSet()
    {
    if(Session["Role"].ToString() == "Administrator")
    {
    strSql = "Select * From T_Navigation Order By ID,F_NodeName";
    }
    else
    {
    strSql = "Select * From T_Navigation Where F_Role Like '%GeneralUser%' Order By ID,F_NodeName";
    } aptNav = new SqlDataAdapter(strSql,connDB);
    dsNav = new DataSet();
    aptNav.Fill(dsNav,"dtNavigate");
    return dsNav;

    } //初始化导航树,通过递归调用显示子树
    private void InitNavigationTree(TreeNodeCollection tncCurrent,string sParentID)
    {
    DataView dvw = new DataView();
    TreeNode nodTemp;
    string strTempID;
    dvw.Table = dsNav.Tables["dtNavigate"];
    dvw.RowFilter = "F_ParentID = '" + sParentID + "'";
    foreach(DataRowView drv in dvw)
    {
    nodTemp = new TreeNode();
    //nodTemp.CheckBox = true;
    nodTemp.ID = drv["F_NodeID"].ToString();
    nodTemp.Text = drv["F_NodeName"].ToString();
    nodTemp.NavigateUrl = drv["F_NavigateUrl"].ToString();
    nodTemp.ImageUrl = drv["F_ImageUrl"].ToString();
    nodTemp.Target = "MainInterface"; tncCurrent.Add(nodTemp);
    strTempID = drv["F_ParentID"].ToString();
    //递归调用
    InitNavigationTree(nodTemp.Nodes,nodTemp.ID);
    }
    }
      

  16.   

    一、根据权限的不同来动态生成TreeView不就OK了吗?
    using Microsoft.Web.UI.WebControls;
    //创建根结点 0.
    tvAdmi.Nodes[0].Text = "个人工作";
    tvAdmi.Nodes[0].ID = "PersonalWork";
    //创建子结点 0.0
    TreeNode tvNode00 = new TreeNode();
    tvNode00.Text = "个人日志";
    tvNode00.ID = "PersonalLog";
    tvNode00.NavigateUrl = "./PersonalWork/MainPer.htm";
    tvNode00.Target = "rightframe";
    this.tvAdmi.Nodes[0].Nodes.Add(tvNode00); //添加子结点
    //创建子结点 0.1
    TreeNode tvNode01 = new TreeNode();
    tvNode01.Text = "修改密码";
    tvNode01.ID = "UpdatePas";
    tvNode01.NavigateUrl = "./PersonalWork/PasswordChange.aspx";
    tvNode01.Target = "rightframe";
    this.tvAdmi.Nodes[0].Nodes.Add(tvNode01); //添加子结点
    //继续创建。
    二、假如有两个权限One 、Two ,那就创建两个TreeViewOne 、TreeViewTwo (注意:在同一页面创建的树中,树的各个结点的ID不能重复!),如果是权限One则显示TreeOne ,否则显示TreeViewTwo !