您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > C# > 正文
用TreeView实现树菜单
[文章信息]
作者:pery
时间:2003-04-02
出处:天极论坛
责任编辑:
[文章导读]
具体方法是:创建一个数据库,设计树图信息表S_Menu,包含NodeId、ParentId、NodeName、Address、Icon字段......
advertisement
热点推荐
· 11.15软件精选 制作MSI文件
· 闪客五周年之闪客光荣榜
· 用Winamp“品尝”无限音乐
· 网络加、解密的技术应用
· 闪客五周年之闪客光荣榜:zoron
[正文]
  具体方法是:创建一个数据库,设计树图信息表S_Menu,包含NodeId、ParentId、NodeName、Address、Icon字段,其它字段根据实际业务而定,节点名称NodeName将在树型控件的节点上显示,NodeId字段保存节点的唯一标识号,ParentId表示当前节点的父节点号,标识号组成了一个“链表”,记录了树上节点的结构。设计一个Web窗体其上放置TreeView控件,修改其属性Id为tvMenu。

  数据结构如下:

CREATE TABLE [dbo].[S_Menu] (
[NodeId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[ParentId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[NodeName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Address] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Icon] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

  数据库如下:

NodeId ParentId NodeName Address Icon
100000 0 公共查询部 icon_document.gif
100001 100000 人民币日报查询 public/a1.aspx icon_settings.gif
100002 100000 外币日报查询 public/a2.aspx icon_settings.gif
100003 0 分行科技部 icon_document.gif
100004 100003 人民币日报查询 tech/a1.aspx icon_settings.gif
100005 100003 外币日报查询 tech/a2.aspx icon_settings.gif
100006 0 福田支行 icon_document.gif
100007 100006 月存款进度表 a1.aspx icon_settings.gif
100008 100006 月存款走势图 a2.aspx icon_settings.gif
100009 0 罗湖支行 icon_document.gif
100010 100009 月存款进度表 a1.aspx icon_settings.gif
100011 100009 月存款走势图 a2.aspx icon_settings.gif

menu_left.aspx文件如下:
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Page language="c#" Codebehind="menu_Left.aspx.cs" AutoEventWireup="false" Inherits="hzquery.menu.menu_Left" %>
<HTML>
<HEAD>
<title>menu_Left</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="menu_Left" method="post" runat="server">
<iewc:TreeView id="tvMenu" runat="server"></iewc:TreeView>
</form>
</body>
</HTML>

CodeBehind代码如下:
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 Microsoft.Web.UI.WebControls;
using System.Data.SqlClient;

namespace hzquery.menu
{
/// <summary>
/// menu_Left 的摘要说明。
/// </summary>
public class menu_Left : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvMenu;
SqlConnection Conn;
SqlDataAdapter myCmd;
DataSet ds;
string cmdSelect;

private void Page_Load(object sender, System.EventArgs e)
{
Conn=new SqlConnection(Application["ConnString"].ToString());
CreateDataSet();
InitTree(tvMenu.Nodes,"0");
}
//建立数据集
private DataSet CreateDataSet()
{
cmdSelect="select * from S_Menu";
myCmd=new SqlDataAdapter(cmdSelect,Conn);
ds=new DataSet();
myCmd.Fill(ds,"tree");
return ds;
}
//建树的基本思路是:从根节点开始递归调用显示子树
private void InitTree(TreeNodeCollection Nds,string parentId)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["tree"];
dv.RowFilter="ParentId="" + parentId + """ ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.ID=drv["NodeId"].ToString();
tmpNd.Text=drv["NodeName"].ToString();
tmpNd.ImageUrl="../images/"+drv["Icon"].ToString();
tmpNd.NavigateUrl="../"+drv["Address"].ToString();
Nds.Add(tmpNd);
intId=drv["ParentId"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}


·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 11.15软件精选 制作MSI文件
  • 闪客五周年之闪客光荣榜
  • 兰欣推出我国第一款网络游戏专用音箱
  • 玩家发现117亡灵种族Bug
  • [配置推荐]极品HIFI配置
  • 东瀛美少女COSPLAY(55)
  • 用Winamp“品尝”无限音乐
  • 迷你型PStwo全面透析专题
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索