将每一个子节点的NavigatorUrl属性设为"./default.aspx?id=软件开发部"类似上面这样的,这样每次单击子节点都会重新load当前页面,
判断id值是否为空是否是你需要的就成了不明白给我发信息

解决方案 »

  1.   

    <%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@import namespace="system.data.oledb"%>
    <%@import namespace="system.data"%>
    <%@ Page Language="vb" debug="true"%>
    <script runat=server>
    sub page_load(sender as object,e as eventargs)
    dim NodeText as string="-1"
    dim ds as dataset=new dataset
    dim conn as oledbconnection
    conn=new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("dATABASE\MYTREE.mdb"))
    dim mycommand as oledbDataAdapter
    mycommand=new oledbDataAdapter("select * from tree where TreeNode='"+NodeText+"' order by NodeNumber asc",conn)
    conn.open()
    mycommand.fill(ds)
    dim i as integer
    '===根结点数
    for i=0 to ds.tables(0).rows.count-1
    dim myTreeNode as new TreeNode()
    myTreeNode.Text=ds.tables(0).rows(i).item(1)
    myTreeNode.ImageUrl="images/closedfolder.gif"
    myTreeNode.ExpandedImageUrl="images/openfolder.gif"
    TreeView1.Nodes.Add(myTreeNode)

        CreateChildTree(myTreeNode,ds.tables(0).rows(i).item(0),ds.tables(0).rows(i).item(1))
    next
    end subsub CreateChildTree(ParentNode as TreeNode,NodeId as String,ParentNodeText as string)
    dim ds as dataset=new dataset()
    dim conn as oledbconnection
    conn=new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&server.mappath("database\mytree.mdb"))
    dim mycommand as oledbDataAdapter
    mycommand=new oledbDataAdapter("select * from tree where TreeNode='"+NodeId+"' order by NodeNumber desc",conn)
    conn.open()
    mycommand.fill(ds)
    dim i as integer
    for i=0 to ds.tables(0).rows.count-1
    dim myTreeNode as new TreeNode()
    myTreeNode.Text=ds.tables(0).rows(i).item(1)
    myTreeNode.ImageUrl="images/book.gif"
    dim myTreeNodeText as string=myTreeNode.Text
    dim ParentNodeTextS as string=ParentNodeText
    myTreeNodeText=server.urlencode(myTreeNodeText)
    ParentNodeTextS=server.urlencode(ParentNodeTextS)
    'myTreeNode.navigateurl="TarGet_Url.aspx?NodeText="+myTreeNode.Text+"&ParentNodeText="+ParentNodeText
    myTreeNode.navigateurl="TarGet_Url.aspx?NodeText="+myTreeNodeText+"&ParentNodeText="+ParentNodeTexts
    myTreeNode.Target="mainFrame"
    ParentNode.Nodes.Add(myTreeNode)
    next
    end sub
    </script>
    <html>
      <head>
        <title></title>
      </head>
     
      <body MS_POSITIONING="GridLayout" bgcolor=#94CBFF>
    <form id="Form1" method="post" runat="server">
    <iewc:TreeView id="TreeView1"  runat="server" selectexpands=true AutoSelect="True"></iewc:TreeView>
    </form>
    </body>
    </html>
    祝你好运
    [email protected]
      

  2.   

    非常感谢楼上的那位朋友,但你回答我的问题好像只是treeview的数据绑定,我现在还不需要这个,我只想知道:怎样取出节点的text,我想用它作为数据适配器的查询参数?
    谢谢各位!!!
      

  3.   

    string ind=TreeView1.SelectedNodeIndex;
    TreeNode node=TreeView1.GetNodeFromIndex(ind);
    Response.Write(node.Text);
      

  4.   

    取出节点的text已经没有问题了,可问题好像还没有结束,我在sqlDbDataAdapter1里设了一个查询的参数@rwqx,并将他的value设为NodeText
    ,NodeText为一变量,可这个参数好像根本就没有起作用,这是为什么呢?
    具体代码如下:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace ProjectAdmin
    {
    /// <summary>
    /// WebForm4 的摘要说明。
    /// </summary>
    public class WebForm4 : System.Web.UI.Page
    {
    public string NodeText="信息中心";
    protected System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
    protected System.Data.SqlClient.SqlConnection sqlConnection1;
    protected ProjectAdmin.dsDengji dsDengji1;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    protected System.Data.SqlClient.SqlCommand sqlSelectCommand1;
    protected System.Data.SqlClient.SqlCommand sqlInsertCommand1;
    protected System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
    protected System.Data.SqlClient.SqlCommand sqlDeleteCommand1;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    dsDengji1.Clear();
    sqlDataAdapter1.Fill(dsDengji1);
    if (!IsPostBack)
    {
    DataGrid1.DataBind();
    } } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()    
    #endregion private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
    {
    Microsoft.Web.UI.WebControls.TreeNode
    NewNode=TreeView1.GetNodeFromIndex(TreeView1.SelectedNodeIndex);
    NodeText=NewNode.Text;
    sqlDataAdapter1.Fill(dsDengji1);
    DataGrid1.DataBind();
    }
    }
    }
    是不是我将代码放错了地方??
    如果分数不够,可以在加,
    但这个问题人命关天,
    希望各位务必救我一命。