ASP.NET 2.0 TreeView in TreeView Node Increase

xiaoxiao2021-03-06  63

In ASP.NET 2.0, it is necessary to dynamically remove the content from the database, and the dynamic increase node is not difficult. For example, as an example of SQL Server 2000, it is necessary to take the author, take out the author, and be a root node , Then take out what books for each author, as a sub-node, so

<% @ Page language = "c #"%>

<% @ Import namespace = "system.data"%>

<% @ Import namespace = "system.data.sqlclient"%>

<% @ Import namespace = "system.configuration"%>

http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd ">

Dynamic Population of The TreeView Control </ Title></p> <p><script runat = server></p> <p>Void Node_Populate (Object Sender,</p> <p>System.Web.ui.WebControls.TreenodeEventArgs E)</p> <p>{</p> <p>IF (e.node.childnodes.count == 0)</p> <p>{</p> <p>Switch (e.node.depth)</p> <p>{</p> <p>Case 0:</p> <p>Fillauthors (E.NODE);</p> <p>Break;</p> <p>Case 1:</p> <p>FillTitlesForauthors (E.NODE);</p> <p>Break;</p> <p>}</p> <p>}</p> <p>}</p> <p>Void Fillauthors (Treenode Node)</p> <p>{</p> <p>String connString = system.configuration.configurationSettings.</p> <p>Connectionstrings ["NorthwindConnnection"]. Connectionstring;</p> <p>SqlConnection Connection = New SqlConnection (Conntring);</p> <p>Sqlcommand command = new sqlcommand ("SELECT * FROM</p> <p>Authors ", Connection);</p> <p>SqlDataAdapter Adapter = New SqldataAdapter (Command);</p> <p>Dataset authors = new dataset ();</p> <p>Adapter.Fill (Authors);</p> <p>IF (authors.tables.count> 0)</p> <p>{</p> <p>Foreach (DataRow Row In Authors.tables [0] .rows)</p> <p>{</p> <p>Treenode NewNode = New</p> <p>Treenode (Row ["AU_FNAME"]. TOSTRING () "" </p> <p>Row ["AU_LNAME"]. TOSTRING (),</p> <p>Row ["AU_ID"]. TOSTRING ());</p> <p>Newnode.populateOndemand = true; newnode.seectivity = Treenodeeelectrically.expand;</p> <p>Node.childNodes.Add (newNode);</p> <p>}</p> <p>}</p> <p>}</p> <p>Void FillTitlesForauthors (Treenode Node)</p> <p>{</p> <p>String authorid = node.value;</p> <p>String connString = system.configuration.configurationSettings.</p> <p>Connectionstrings ["NorthwindConnnection"]. Connectionstring;</p> <p>SqlConnection Connection = New SqlConnection (Conntring);</p> <p>Sqlcommand command = new sqlcommand ("SELECT T.TITLE,</p> <p>T.TITLE_ID from Titles T " </p> <p>"Inner Join Titleauthor Ta On</p> <p>T.TITLE_ID = TA.TITLE_ID " </p> <p>"Where ta.au_id = '" authorid "'", connection);</p> <p>SqlDataAdapter Adapter = New SqldataAdapter (Command);</p> <p>DataSet TitlesForauthors = New DataSet ();</p> <p>Adapter.Fill (TitlesForauthors);</p> <p>IF (titlesforauthors.tables.count> 0)</p> <p>{</p> <p>Foreach (Datarow Row In TitlesForauthors.tables [0] .rows)</p> <p>{</p> <p>Treenode NewNode = New Treenode</p> <p>Row ["Title"]. TOSTRING (), ROW ["Title_ID"]. TOSTRING ());</p> <p>NewNode.PopulateOndemand = false;</p> <p>NewNode.Selectivity = Treenodeseelectrics .NONE;</p> <p>Node.childNodes.Add (newNode);</p> <p>}</p> <p>}</p> <p>}</p> <p></ script></p> <p></ hEAD></p> <p><body></p> <p><form id = "form1" runat = "server"></p> <p><DIV></p> <p><ask: TreeViewRunat = "server" expandimageurl = "images / closed.gif"</p> <p>CollapseImageURL = "images / open.gif"</p> <p>OntreenodePopulate = "node_populate" id = "tvwauthors"></p> <p><Nodes></p> <p><ask: TREENODETEXT = "authors" populateOndemand = TRUE</p> <p>Value = "0" /></p> <p></ Nodes></p> <p></ ask: TreeView></p> <p></ div></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>Among them, pay attention to the ontreenodepopulate event, which is happened when the node of the tree is expanded. Here, the custom node_populate is defined, in Node_Populate, check the depth of the current node, if it is 0, it is the root node, then call the Fillauthors process Remove all authors, if the depth is 1, it is the junction of the leaves, calling the FillTitlesForauthors process. Among them, pay attention to the process of dynamic establishment of a tree node, such as: Treenode NewNode = New</p> <p>Treenode (Row ["AU_FNAME"]. TOSTRING () "" </p> <p>Row ["AU_LNAME"]. TOSTRING (),</p> <p>Row ["AU_ID"]. TOSTRING ());</p> <p>NewNode.PopulateOndemand = true;</p> <p>NewNode.Selectivity = TreenodeSelectrivity.expand;</p> <p>Node.childNodes.Add (newNode); where the PopluateOndemand property indicates that the node is dynamically expanded.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-84563.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="84563" 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.041</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 = 'iMVacJcLTyrAJKtJA3BwtIcOfKePYJGCWlpDdJLxSsAyIjLiNhaeNROxsn_2BDqp7Mc9Dh8nxlsnnjWL8e0KWDxg_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>