当前位置:网站首页>Use treeview tree menu bar (recursively call database to create menu automatically)
Use treeview tree menu bar (recursively call database to create menu automatically)
2020-11-09 12:12:00 【Irving the procedural ape】
When doing industrial control PC project , When the project is too big , There are a lot of subdivision processes , The number of pages that need to be managed will also increase a lot , You can use .NET Control TreeView Page switch management , And realize TreeView Between the mutual switch .Intouch and Wonderware You can import and use TreeView Control .
One 、 Use VS Development TreeView Control
Create a control project solution
Drag one TreeView Control , You can simply edit nodes

Tag It's data that needs to be passed out

Two 、 What happened
At the end of the project , The other party will put forward a lot of improvement needs , At this point, if there are too many TreeView Control , Every time we improve , For the upper computer system, it needs to import again , There's too much repetition , Too complicated .
Solution : Create menu table in database , The menu bar is automatically generated when the project is running
3、 ... and 、 Create database
Create database tables ,MenuId It's the menu number ,MenuName by TreeView The name of the page displayed ,MenuCode by Tag,ParentId This node is the root of the node

Four 、 Write code and generate it automatically
According to the two-tier architecture

Entity class TreeViewNode
1 public class TreeViewNode 2 { 3 public int MenuId { get; set; } 4 5 public string MenuName { get; set; } 6 7 public string MenuCode { get; set; } 8 9 public string ParentId { get; set; }10 }
Service layer :MenuService
1 /// <summary> 2 /// Get all the menu items 3 /// </summary> 4 /// <returns></returns> 5 public List<TreeViewNode> GetAllMenu() 6 { 7 string sql = "select MenuId,MenuName,MenuCode,ParentId from MenuList"; 8 List<TreeViewNode> nodeList = new List<TreeViewNode>(); 9 SqlDataReader objRead = SQLHelper.GetReader(sql);10 while (objRead.Read())11 {12 nodeList.Add(new TreeViewNode()13 {14 MenuId = Convert.ToInt32(objRead["MenuId"]),15 MenuName = objRead["MenuName"].ToString(),16 MenuCode = objRead["MenuCode"].ToString(),17 ParentId = objRead["ParentId"].ToString()18 });19 }20 objRead.Close();21 return nodeList;22 }
TreeViewMenu Control :
1 public partial class TreeViewMenu: UserControl 2 { 3 public TreeViewMenu() 4 { 5 InitializeComponent(); 6 Lo.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
猜你喜欢

SHOW PROFILE分析SQL语句性能开销

Looking for better dynamic getter and setter solutions

服务应用 ClockService安卓实现闹钟

Open source ERP recruitment

El table dynamic header

Mapstructure detoxifies object mapping

What really drags you down is sunk costs

The choice of domain name of foreign trade self built website

Android NDK 开发实战 - 微信公众号二维码检测

Three practical skills of Medical Project Management
随机推荐
El table dynamic header
Implement crud operation
Explain Python input() function: get user input string
How to ensure that messages are not consumed repeatedly? (how to ensure the idempotent of message consumption)
A simple way to realize terminal text paste board
Kubernetes业务日志收集与监控
vscode 插件配置指北
050_ object-oriented
VisualStudio(Mac)安装过程笔记
Complete set of linked list operations of data structure and algorithm series (3) (go)
Glsb involves load balancing algorithm
Wealth and freedom? Ant financial services suspended listing, valuation or decline after regulation
Source code analysis of ThinkPHP framework execution process
未来中国电信将把云计算服务打造成为中国电信的主业
真正拖垮你的,是沉没成本
nodejs学习笔记(慕课网nodejs从零开发web Server博客项目)
一个简单的能力,决定你是否会学习!
10款必装软件,让Windows使用效率飞起!
Python零基础入门教程(01)
苏宁基于知识图谱的大规模告警收敛和根因定位实践