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

原创 2004年04月12日 12:25:00

程序代码如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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);

                   }

              }

         }

 

}

 

效果图如下:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2004-2-51039080.png

版权声明:本文为博主原创文章,未经博主允许不得转载。

ASP.Net操作Access数据库总结

1、数据库的连接 引入命名空间 using System.Data; using System.Data.OleDb; 连接代码:    string strConnection = "Provide...
  • lc_2014c
  • lc_2014c
  • 2015年07月08日 16:17
  • 1011

ASP.NET操作EXCEL的总结篇

http://www.jb51.net/article/26273.htm 今年有个系统的部分EXCEL的操作也让我做,顺便结合之前操作EXCEL的经验作一下总结,可能也算不上什么,对于绝大多数来...
  • a364416036
  • a364416036
  • 2016年07月29日 09:19
  • 1286

Asp.net MVC 4 Web编程阅读有感

已经有几年没有花时间看一本书了,趁着混合架构迁移的机会,花了几天看了一下 Jess和Toddler合著的Asp.net MVC 4  Web 编程。 记得入软件的行就是从B/S着手的,大概在八年前,...
  • gongbenwen
  • gongbenwen
  • 2015年01月27日 20:57
  • 1180

ASP.NET中使用JSON方便实现前台与后台的数据交换

一、前台向后台请求数据 在页面加载时,有时需要对一些表单进行初始化,此时可以利用JQuery的 get 函数向后台发起异步请求: //初始化函数 function initSettings()...
  • jsjpanxiaoyu
  • jsjpanxiaoyu
  • 2015年04月20日 20:58
  • 1351

ASP.NET下数据展示与分页操作总结

ASP.NET作为.NET下开发网站的首选,与数据库打交道是必然的。特别在相关的数据展示与操作这一块,其性能和用户体验对一个网站尤其重要。一个有着对用户操作进行快速响应的网站无疑在当前已经成为一种最基...
  • gxwzmm
  • gxwzmm
  • 2014年01月02日 15:22
  • 2120

ASP.NET MVC 4 中的JSON数据交互

前台Ajax请求很多时候需要从后台获取JSON格式数据,一般有以下方式:   拼接字符串 return Content("{\"id\":\"1\",\"name\":\"A\"}"...
  • jiangfei009003
  • jiangfei009003
  • 2014年08月06日 10:21
  • 904

asp.net学习总结——ADO.net(对Sql Server进行操作的数据访问类)

ADO.net(对Sql Server进行操作的数据访问类)
  • sun15732621550
  • sun15732621550
  • 2016年06月11日 21:40
  • 1046

[网络开发教程] ASP.net+Unity3D完美实现数据库操作方法(已测通

很多同学用到这样方法导出时无法实现操作数据库,由于U3D对dll支持并不是很完美,这里给出一个交给web端来处理的详细教程可以解决各个平台操作mssql的问题。php、mysql等同理 接下来我们通...
  • mysouling
  • mysouling
  • 2016年02月24日 10:50
  • 1757

Asp.net MVC4 使用EF实现数据库的增删改查

EF的使用 步骤: (1)将EF添加到项目:在Model右击添加新建项 找到ADO.NET实体数据模型,接着。。。 (2)实现数据库的增删改查 查询 (因为在Model中已经添...
  • lzz360
  • lzz360
  • 2013年09月21日 15:11
  • 50478

【译】《Pro ASP.NET MVC4 4th Edition》第二章(五)

本文地址:http://www.cnblogs.com/outtamyhead/archive/2013/04/02/2995492.html ,转载需保留本地址 说在前面: 1、由于是头...
  • dyllove98
  • dyllove98
  • 2013年04月05日 15:05
  • 1602
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于asp.net的webmenu的数据操作(4)
举报原因:
原因补充:

(最多只允许输入30个字)