當前位置:編程學習大全網 - 源碼下載 - asp.net:求壹份能從數據庫中讀取數據動態生成菜單目錄的源碼

asp.net:求壹份能從數據庫中讀取數據動態生成菜單目錄的源碼

怎麽發給妳呢?

算了 還是直接發給妳吧,這個是我之前學習的時候,在網上找的。希望能夠對妳有所幫助:

第壹步 建表

create table TreeTest

(

id int identity(1,1) primary key ,

treeId int, --數形結構 1,代表根目錄 2,代表根的下壹級目錄,3代表根的子目錄的子目錄。。依次類推

names varchar(200), --url傳的參數值

page varchar(200) --頁面

)

--添加測試數據

insert into TreeTest select 1,'張三','default.aspx'

union all select 2,'李四','default1.aspx'

union all select 2,'王五','default2.aspx'

union all select 2,'唐僧','default3.aspx'

union all select 3,'八戒','default4.aspx'

union all select 3,'八戒','default5.aspx'

第二步 在頁面寫如下代碼

<body>

<form id="form1" runat="server">

<div>

<asp:Menu ID="Menu1" runat="server">

</asp:Menu>

</div>

</form>

</body>

第三步 在頁面後臺寫如下代碼(註意不要整個復制,因為類名不壹樣)

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

using System.Data.ProviderBase;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

DataSet ds = new DataSet();

protected void Page_Load(object sender, EventArgs e)

{

//Menu1.Items.Add(i1);

//i1.ChildItems.Add(i2);

// 在此處放置用戶代碼以初始化頁面

SqlConnection CN = new SqlConnection("server=數據名連接地址;User id=;pwd=;database=tempdb");

//初始化連接字符串

CN.Open();

//添加命令,從數據庫中得到數據

SqlCommand sqlCmd = new SqlCommand();

sqlCmd.Connection = CN;

sqlCmd.CommandText = "select * from TreeTest";

sqlCmd.CommandType = CommandType.Text;

SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);

adp.Fill(ds);

//調用遞歸函數,完成樹形結構的生成

//tn2=AddTree(0, (TreeNode)null);

//TreeView1.Nodes.Add(tn2);

AddTree(1, (MenuItem)null);

}

public void AddTree(int ParentID, MenuItem pNode)

{

string url1;

string url2;

string url3;

string url4;

MenuItem mi = new MenuItem();

//TreeNode tn1 = new TreeNode();

DataView dvTree = new DataView(ds.Tables[0]);

//過濾ParentID,得到當前的所有子節點

dvTree.RowFilter = "treeId = " + ParentID;

foreach (DataRowView Row in dvTree)

{

if (pNode == null)

{ //'?添加根節點

url1 = Row["names"].ToString();

url2 = Row["page"].ToString() + "?name=" + url1;

mi.Text = url1;

mi.NavigateUrl = url2;

mi.Target = "_blank";

// tn1.Text = url1;

// tn1.NavigateUrl = url2;

Menu1.Items.Add(mi);

// TreeView1.Nodes.Add(tn1);

AddTree(Int32.Parse(Row["id"].ToString()) + 1, mi); //再次遞歸

}

else

{ //添加當前節點的子節點

// TreeNode tn2 = new TreeNode();

MenuItem m2 = new MenuItem();

url3 = Row["names"].ToString();

url4 = Row["page"].ToString() + "?name=" + url3;

m2.Text = url3;

m2.NavigateUrl = url4;

m2.Target = "_blank";

//tn2.Text = url3;

//tn2.NavigateUrl = url4;

pNode.ChildItems.Add(m2); //修改的地方

// pNode.ChildNodes.Add(tn2);

AddTree(Int32.Parse(Row["id"].ToString()) + 1, m2); //再次遞歸

}

}

}

}

  • 上一篇:什麽是心跳機制
  • 下一篇:西瓜介紹
  • copyright 2024編程學習大全網