基于asp.net的webmenu的数据操作4
来源:互联网 发布:马思纯演技知乎 编辑:程序博客网 时间:2024/05/18 15: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);
}
}
}
}
效果图如下:
- 基于asp.net的webmenu的数据操作(4)
- 基于asp.net的webmenu的数据操作4
- 基于asp.net的webmenu的数据操作4
- 基于asp.net的webmenu的数据操作4
- 基于asp.net的webmenu的数据操作(1)
- 基于asp.net的webmenu的数据操作(2)
- 基于asp.net的webmenu的数据操作(3)
- 基于asp.net的webmenu的数据操作(5)
- [转贴]基于asp.net的webmenu的数据操作
- 基于asp.net的webmenu的数据操作5
- 基于asp.net的webmenu的数据操作3
- 基于asp.net的webmenu的数据操作2
- 基于asp.net的webmenu的数据操作1
- 基于asp.net的webmenu的数据操作5
- 基于asp.net的webmenu的数据操作3
- 基于asp.net的webmenu的数据操作2
- 基于asp.net的webmenu的数据操作1
- 基于asp.net的webmenu的数据操作5
- 基于ASP.NET的Web动态控件创建
- 设计ASP.NET新闻管理系统
- ASP.NetXML打造留言薄
- 基于asp.net的webmenu的数据操作5
- C# 同一窗体一次只打开一个实列(单态)
- 基于asp.net的webmenu的数据操作4
- 基于asp.net的webmenu的数据操作3
- 基于asp.net的webmenu的数据操作2
- 基于asp.net的webmenu的数据操作1
- 创建用于ASP.NET的分页程序控件
- 创建ASP.NET监视服务器进程
- ASP.net随机数应用实例
- 用ASP.NET和XML做的新闻系统
- 创建基于ASP.NET的SMTP邮件服务