2023年6月22日发(作者:)
C#→⽤TreeView实现树菜单
具体⽅法是:创建⼀个数据库,设计树图信息表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 Icon100000 0 公共查询部 icon_100001 100000 ⼈民币⽇报查询 public/ icon_100002 100000 外币⽇报查询 public/ icon_100003 0 分⾏科技部 icon_100004 100003 ⼈民币⽇报查询 tech/ icon_100005 100003 外币⽇报查询 tech/ icon_100006 0 福⽥⽀⾏ icon_100007 100006 ⽉存款进度表 icon_100008 100006 ⽉存款⾛势图 icon_100009 0 罗湖⽀⾏ icon_100010 100009 ⽉存款进度表 icon_100011 100009 ⽉存款⾛势图 icon_
menu_⽂件如下:<%@ Register TagPrefix="iewc" Namespace="trols" Assembly="trols, Version=1.0.2.226, Culture=neutral,PublicKeyToken=31bf3856ad364e35" %><%@ Page language="c#" Codebehind="menu_" AutoEventWireup="false" Inherits="_Left" %>
CodeBehind代码如下:using System;using tions;using entModel;using ;using g;using ;using nState;using ;using trols;using ntrols;using trols;using ent;
namespace { ///
private void Page_Load(object sender, rgs e) { Conn=new SqlConnection(Application["ConnString"].ToString()); CreateDataSet(); InitTree(,"0"); } //建⽴数据集 private DataSet CreateDataSet() { cmdSelect="select * from S_Menu"; myCmd=new SqlDataAdapter(cmdSelect,Conn); ds=new DataSet(); (ds,"tree"); return ds; } //建树的基本思路是:从根节点开始递归调⽤显⽰⼦树
private void InitTree(TreeNodeCollection Nds,string parentId) { DataView dv=new DataView(); TreeNode tmpNd; string intId; =["tree"]; ter="ParentId="" + parentId + """ ; foreach(DataRowView drv in dv) { tmpNd=new TreeNode(); =drv["NodeId"].ToString(); =drv["NodeName"].ToString(); rl="../webimages/"+drv["Icon"].ToString(); teUrl="../"+drv["Address"].ToString(); (tmpNd); intId=drv["ParentId"].ToString(); InitTree(,); } }
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { InitializeComponent(); (e); } private void InitializeComponent() {
+= new andler(_Load);
} #endregion }}
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687383087a5957.html
评论列表(0条)