分享
 
 
 

基于asp.net的webmenu的数据操作(4)

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

程序代码如下:

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;

using System.Data.OleDb;

namespace WebApplication6

{

/// <summary>

/// WebForm1 的摘要说明。

/// </summary>

public class WebForm1 : System.Web.UI.Page

{

protected Coalesys.WebMenu.WebMenu csNetMenu;

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

csNetMenu.MenuBar.AbsoluteDockEnabled = false;

csNetMenu.MenuBar.AbsoluteDragEnabled = false;

csNetMenu.MenuBar.BackgroundColor = "";

csNetMenu.MenuBar.OuterHighlightColor = "#666666";

csNetMenu.MenuBar.OuterShadowColor = "#666666";

csNetMenu.MenuBar.InnerShadowColor = "#F9F8F7";

csNetMenu.MenuBar.HoverColor = "#dfdfdf";

csNetMenu.MenuBar.SelectedColor = "#B6BDD2";

csNetMenu.MenuBar.SelectedTextColor = "#000000";

csNetMenu.BackgroundColor = "";

csNetMenu.SelectedColor = "#B6BDD2";

csNetMenu.OuterHighlightColor = "#c0c0c0";

csNetMenu.OuterShadowColor = "#c0c0c0";

csNetMenu.InnerShadowColor = "#808080";

csNetMenu.PopupIcon = "./images/arrow-black.gif";

csNetMenu.SelectedPopupIcon = "./images/arrow-white.gif";

csNetMenu.ClearPixelImage = "./images/clearpixel.gif";

// Populate WebMenu

LoadWebMenuData(csNetMenu);

}

//=============================================================================

// LoadWebMenuData - load webmenu from database

//

// input:

// csWebMenu - [in] Coalesys.WebMenu.WebMenu object

//

// output:

// none

//

public void LoadWebMenuData(Coalesys.WebMenu.WebMenu csWebMenu)

{

Coalesys.WebMenu.Group csMenuGroup;

// database info

string dbConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";

string dbPathString = Server.MapPath("./SelfReferencedTable.mdb");

string dbSqlString = "SELECT * FROM Nodes ORDER BY ID";

// Initiate OleDb interface

OleDbConnection dbConn = new OleDbConnection(dbConnString + dbPathString);

OleDbCommand dbComm = new OleDbCommand(dbSqlString, dbConn);

OleDbDataAdapter dbAdapter = new OleDbDataAdapter();

dbConn.Open();

// Fill an ADO.NET DataSet

DataSet ds = new DataSet();

dbAdapter.SelectCommand = dbComm;

dbAdapter.Fill(ds, "MenuItems");

dbConn.Close();

// Create the data relation between the ID and Parent_ID columns of the MenuItems table.

// (this is the key to hierarchical navigating in a self-referencing table).

DataRelation dr = ds.Relations.Add("MenuItemHierarchy",

ds.Tables["MenuItems"].Columns["ID"],

ds.Tables["MenuItems"].Columns["Parent_ID"]);

// Start top-down navigation of the MenuItem rows.

foreach(DataRow dbMenuItem in ds.Tables["MenuItems"].Rows)

{

// If the Parent_ID colum is null, then this is a root menu item.

if(dbMenuItem.IsNull("Parent_ID"))

{

// Create a menu group for the root menu item

csMenuGroup = csWebMenu.Groups.Add();

csMenuGroup.Caption = dbMenuItem["Caption"].ToString();

// execute the recursive function to populate all it's children.

AddMenuItems(dbMenuItem.GetChildRows(dr), dr, csMenuGroup);

}

}

}

//=============================================================================

// AddMenuItems - Recursive function to populate hierarchical Menu Items

// from data rows that have parent/child relationships.

//

// input:

// dataRows - [in] Child Rows

// dataRel - [in] Data Relation

// webMenuGroup - [in] WebMenu Group

//

// output:

// none

//

public void AddMenuItems(DataRow[] dataRows, DataRelation dataRel, Coalesys.WebMenu.Group webMenuGroup)

{

Coalesys.WebMenu.Item csMenuItem;

Coalesys.WebMenu.Group csNestedMenuGroup;

DataRow[] drChildren;

foreach(DataRow dbMenuItem in dataRows)

{

csMenuItem = webMenuGroup.Items.Add();

csMenuItem.Caption = dbMenuItem["Caption"].ToString();

csMenuItem.URL = dbMenuItem["URL"].ToString();

if (dbMenuItem["Enable"].ToString()=="True" )

{

csMenuItem.Enabled=true;

}

else

{

csMenuItem.Enabled=false;

}

// check if this Item has children of it's own

drChildren = dbMenuItem.GetChildRows(dataRel);

// if so, create a group for the children and reenter this function.

if(drChildren.Length > 0)

{

csNestedMenuGroup = csMenuItem.AddGroup();

AddMenuItems(drChildren, dataRel, csNestedMenuGroup);

}

}

}

}

效果图如下:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有