Implement Tree Menu with TreeView

xiaoxiao2021-03-06  66

ASP.NET Programming Technology - Implement Tree Menu with TreeView

The specific method is: Create a database, design a tree graph information table S_Menu, contain NodeID, ParentID, NodeName, Address, ICON field, and other fields depending on the actual business, the node name NodeName will display on the node of the tree control, NodeID field Save the unique identification number of the node, ParentID indicates the parent node number of the current node, and the identification number consists of a "linked list" to record the structure of the node on the tree. Design a web form placing the TreeView control, modify its properties ID to TVMenu.

The data structure is as follows: 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

Database as follows: NodeId ParentId NodeName Address Icon 100000 0 Department of Public inquiries icon_document.gif 100001 100000 Renmin Bi Daily query public / a1.aspx icon_settings.gif 100002 100000 Currency Daily query public / a2.aspx icon_settings.gif 100003 0 Branch of the Ministry of Science icon_document.gif 100004 100003 RMB daily query tech / a1.aspx icon_settings.gif 100005 100003 foreign currency daily query tech / a2.aspx icon_settings.gif 100006 0 Futian branch icon_document.gif 100007 100006 deposit schedule a1.aspx icon_settings.gif 100008 100006 month deposit trend Figure A2.ASPX ICON_SETTINGS.GIF 100009 0 Luohu Branch icon_Document.gif 100010 100009 month Deposit Schedule A1.ASPX Icon_Settings.gif 100011 100009 month Deposit Chart A2.ASPX Icon_Settings.gif Menu_left.aspx file as follows: <% @regiTer 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 "%> 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</p> <p>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 code as follows: use 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;</p> <p>Namespace Hzquery.Menu {/// <summary> /// menu_left summary description. /// </ summary> public class menu_Left: System.Web.UI.Page {protected Microsoft.Web.UI.WebControls.TreeView tvMenu; SqlConnection Conn; SqlDataAdapter myCmd; DataSet ds; string cmdSelect;</p> <p>Private void Page_load (Object sender, system.eventargs e) {conn = new sqlconnection (Application ["connString"]. toString ()); createDataSet (); inittree (TVMenu.nodes, "0");} // Establish data Set private dataset createDataSet () {cmdselect = "select * from s_menu"; mycmd = new sqldataadapter (cmdselect, conn); DS = new dataset (); Mycmd.Fill (DS, "Tree"); Return DS;} // The basic idea of ​​building a tree is: Remissive Call from the root node display Sub Tree Private Void InitTree (Treenode) {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);}}</p> <p>#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);} #ndregion}}}</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-118601.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="118601" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.039</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'bgwGpvY7FJldXDFC5kxq7KtxhorG72CwSgTcfTmYD_2BNEo5EwZOx3aurOhgeqUju0KXgNey3F4SwloqWsoPnyWw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>