用框架,左边TREEVIEW加入链接,右框架是具体内容
treeview的用法,搜索一下,很多

解决方案 »

  1.   

    关键是在左边选择链接在右框架出现内容怎么实现呢,因为一般你点击链接都会在左边框架内显示。而treenode只有NavigateUrl属性而没target属性,无法指定链接的打开方式。
      

  2.   

    你使用的是DotNet自带的TreeView吧!
        你可以去microsoft站点下载Microsoft.Web.UI.WebControls安装一下,这里的TreeView的节点有Target属性的,我在以前编写论坛时在树状显示文章列表就是用这个控件的。
      

  3.   

    伪软的treeview很好使的去下载了。
      

  4.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.OleDb;  
    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 myoa
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Data.OleDb.OleDbConnection oleDbConnection1;
    protected System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
    protected System.Data.DataSet dataSet1;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    DataSet ds=new DataSet();
    public string objConn;
    //public string objConn ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+"\\dATABASE\\myoa.mdb";
    OleDbConnection MyConn;
    OleDbDataAdapter mycommand; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    //TreeView1.Width=100;
    //TreeView1.Height=450;   
    objConn ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("dATABASE\\myoa.mdb");
    string NodeText="-1";
    MyConn=new OleDbConnection(objConn);  
    mycommand=new OleDbDataAdapter("select * from tree where TreeNode='"+NodeText+"' order by NodeNumber asc",MyConn);
    MyConn.Open();
    mycommand.Fill(ds);
    int i;
    //===根结点数
    for(i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    Microsoft.Web.UI.WebControls.TreeNode myTreeNode=new Microsoft.Web.UI.WebControls.TreeNode();
    //dim myTreeNode as new Microsoft.Web.UI.WebControls.TreeNode()
    myTreeNode.Text=ds.Tables[0].Rows[i].ItemArray[1].ToString() ;
    myTreeNode.ImageUrl="images/closedfolder.gif";
    myTreeNode.ExpandedImageUrl="images/openfolder.gif";
    myTreeNode.NavigateUrl="Query.aspx?NodeText="+myTreeNode.Text;
    myTreeNode.Target="mainFrame";
    TreeView1.Nodes.Add(myTreeNode);
    //Response.Write( ds.Tables[0].Rows[i].ItemArray[0].ToString());
    //Response.Write("<br/>");
    //Response.Write( ds.Tables[0].Rows[i].ItemArray[1].ToString());
    CreateChildTree(myTreeNode,ds.Tables[0].Rows[i].ItemArray[0].ToString() ,ds.Tables[0].Rows[i].ItemArray[1].ToString() );
    }
    //end sub
    }
    public void CreateChildTree(Microsoft.Web.UI.WebControls.TreeNode ParentNode,string NodeId ,string ParentNodeText)
    {
    mycommand=new OleDbDataAdapter("select * from tree where TreeNode='"+NodeId+"' order by NodeNumber desc",MyConn);
    //MyConn.Open();
    mycommand.Fill(ds,"second");
    int i;
    for(i=0;i<ds.Tables["second"].Rows.Count;i++)
    {
    Microsoft.Web.UI.WebControls.TreeNode myTreeNode=new Microsoft.Web.UI.WebControls.TreeNode();
    myTreeNode.Text=ds.Tables["second"].Rows[i].ItemArray[1].ToString();  
    myTreeNode.ImageUrl="images/book.gif";
    string myTreeNodeText =myTreeNode.Text;
    string ParentNodeTextS =ParentNodeText;
    //myTreeNodeText=Server.UrlEncode(myTreeNodeText);
    //ParentNodeTextS=Server.UrlEncode(ParentNodeTextS);
    myTreeNode.NavigateUrl="Query.aspx?NodeText="+myTreeNodeText+"&ParentNodeText="+ParentNodeTextS;
    myTreeNode.Target="mainFrame";
    ParentNode.Nodes.Add(myTreeNode);

    }
    ds.Tables["second"].Clear(); 
    } #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()
    {    
    this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
    this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
    this.dataSet1 = new System.Data.DataSet();
    ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
    // 
    // dataSet1
    // 
    this.dataSet1.DataSetName = "NewDataSet";
    this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
    this.Load += new System.EventHandler(this.Page_Load);
    ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); }
    #endregion
    } //public Sub resize()
    }
      

  5.   

    初始化页面节点的代码:       
    Private Sub initTree(ByVal nds As TreeNodeCollection, ByVal parentID As Integer)
                Dim dv As New DataView()
                Dim tmpNd As TreeNode
                Dim strId As Integer
                dv.Table = ds.Tables("TitleTree")
                dv.RowFilter = "parentid='" + parentID.ToString() + "'"
                Dim objRow As DataRowView            For Each objRow In dv
                    tmpNd = New TreeNode()
                    strId = CInt(objRow("nodeid"))
                    tmpNd.ID = strId.ToString()
                    tmpNd.Text = objRow("nodename").ToString()
                    tmpNd.ExpandedImageUrl = objRow("imgex").ToString()
                    tmpNd.ImageUrl = objRow("img").ToString()
                    tmpNd.NavigateUrl = objRow("address").ToString()
                    nds.Add(tmpNd)
                    initTree(nds(nds.Count - 1).Nodes, strId)
                Next        End Sub生成节点表的脚本文件:
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[visit_TitleTree]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[visit_TitleTree]
    GOCREATE TABLE [dbo].[visit_TitleTree] (
    [parentid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [nodeid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [nodename] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [imgex] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [img] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [address] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO
      

  6.   

    有没有高手指点一下Microsoft.Web.UI.WebControls的详细用法呢?