当前位置:编程学习 > C#/ASP.NET >>

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

答案:     程序代码如下:
  
  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
  
   //

上一个:用Asp.net实现基于XML的留言簿之一
下一个:基于asp.net的webmenu的数据操作(2之前)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,