Display the data of the main cluster with ASP.NET DataGrid

xiaoxiao2021-03-06  57

Do you have any data to show a primary structure in DataGrid in actual work? If you are familiar with ADO.NET and SQL Server 2000, we will give this goal with the sample database northwind and vb.net that comes with VS.NET comes with VS.NET.

First, let's first prepare data to be displayed.

Below is the contents of the VB.NET code file hierarchicalDataGrid.aspx.vb to hierarchicalDataGrid.aspx:

Imports System.Data.SqlClientPublic Class HierarchicalDataGridInherits System.Web.UI.PageProtected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid # Region "Web Form Designer Generated Code" 'The following call to the Web Form Designer is a must Private Sub InitializeComponent () End SubPrivate Sub Page_Init (ByVal sender as System.Object, ByVal e as System.EventArgs) Handles MyBase.Init'CODEGEN: this method is called for the Web Form Designer 'Do not change the code editor used here .InitializeComponent () End Sub # End RegionPrivate Sub Page_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load' open database Connectivity Dim OrdersConnection As New SqlConnection ( "Server = (local) / NetSDK; Database = northwind; Trusted_Connection = yes ") 'to give orders and order details Dim OrderAdapter As New SqlDataAdapter (" Select * from orders; select OrderID, Products.ProductName, [order Details] .Unitprice, [ Order Details] .quantity, [Order Details] .discount from [Order Details], Products Where [Order Details] .productId = Products.ProductID ", OrDersConnection)" creates and Fill DataSet Objects Dim ORDERDATASET AS New DataSet () OrderaDApter.Fill (ORDERDATASET) 'Settings Table Name ORDERDATASET.TABLES (0) .tablename = "Orders" OrderDataSet.Tables (1) .tablename = "Order Details" is based on ORDERID Establishing a parent child relationship between the two tables of the field DIM PARENT AS DATACOLUMN = OrderDataSet.Tables ("OrderID") Dim Child as Datacolumn = OrderDataSet.Tables ("Order Details"). Columns ("OrderID"). Columns ("ORDERID" ) Dim OrderRelation as DataRelation = New DataRelation ( "OrderRelation", Parent, Child, False) 'is added to the relationship OrderDataSet.Relations.Add DataSet (OrderRelation)' is bound to the DataGrid Orders table DataGrid1.DataSource = OrderDataSet.Tables ( "Orders "

) .DefaultViewDataBind () End SubPrivate Sub DataGrid1_ItemDataBound (ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBounde.Item.Cells (0) .BackColor = System.Drawing.Color.IvoryEnd SubEnd Class In HierarchicalDataGrid.aspx, we build template columns for DataGrid1 and embed another DataGrid into this template column, and parent-level DataGrid is used to display master records, such as: Order. The child level DataGrid is used to display details, such as the details of the order. We use this to dynamically specify data sources for sub-DataGrid:

DataSource = '<% # ctype (container.DataItem, DataRowView) .createchildview ("ORDERRELATION")%>>>

The above sentence is to achieve the key to displaying the main secondary data. Depending on the current parent-level record, DataRowView.createChildView uses the name of the relationship created in front as a parameter to obtain sub-record and bind it to the sub-DataGrid.

Below is the code of the ASPX page we have to display, hierarchicalDataGrid.aspx:

<% @ Page Language = "vb" AutoEventWireup = "false" Codebehind = "HierarchicalDataGrid.aspx.vb" Inherits = "HierarchicalDataGrid.HierarchicalDataGrid"%> <% @ Import namespace = "System.Data"%> Display the example of the host sub-relational data </ ​​title> <meta name = "content =" Microsoft Visual Studio. NET 7.0 "> <meta name =" CODE_LANGUAGE "content =" Visual Basic 7.0 "> <meta name =" vs_defaultClientScript "content =" JavaScript "> <meta name =" vs_targetSchema "content =" http://schemas.microsoft. COM / IntelliSense / IE5 "> </ head> <body> <form id =" frMdataGrid "method =" post "runat =" server "> <p align =" center "> <ask: DataGrid ID =" DataGrid1 "BorderColor = "# 0099FF" runat = "server" ShowHeader = "False" Width = "470px" CellPadding = "0" CellSpacing = "0" AutoGenerateColumns = "False" BorderWidth = "2px"> <Columns> <asp: TemplateColumn> < ItemTemplate> <Table cellspacing = "0" cellpadding = "0" width = "100%" border = "0"> <tr> <td bgcolor = "# ff6600"> <b> order number: <% # databinder.eval (Container.DataItem, "ORDERID")%> </ b> </ t D> </ tr> <tr> <td align = "right"> <ask: DataGrid ID = DataGrid2 runat = "server" autogeneratecolumns = "false" bordercolor = "</p> <p># 33FF33 "DataKeyField =" OrderID "DataSource = '<% # Ctype (Container.DataItem, DataRowView) .CreateChildView (" OrderRelation ")%>'> <HeaderStyle Font-Bold =" True "ForeColor =" # CC0066 "BackColor = "#Ffccff"> </ headerstyle> <columns> <asp: boundcolumn visible = "false" datafield = "orderid" readonly = "true"> </ asp: boundcolumn> <ask: templatecolumn headertext = Product Name> < HeaderStyle Width = "300px"> </ HeaderStyle> <ItemTemplate> <% # DataBinder.Eval (Container.DataItem, "ProductName")%> </ ItemTemplate> </ asp: TemplateColumn> <asp: BoundColumn DataField = "UnitPrice" Headertext = "Unit"> </ asp: boundcolumn> <ask: BoundColumn DataField = "Quantity" Headertext = "Quantity"> </ asp: boundcolumn> <ask: BoundColumn DataField = "discount" Headeertext = "Discount"> </ ASP: BoundColumn> </ columns> </ ask: dataGrid> </ td> </ tr> </ table> </ itemtemplate> </ ask: templateColumn> </ columns> </ asp: datagrid> </ p> </ form> </ body> </ html> Create a VB.NET ASPX application named HierarchicalDataGrid in VS.NET, enter the result of the above:</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-113087.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="113087" 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.055</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 = 'eQ0_2FGUD9VSvE4AMywuHWNlaCT5_2BVbzjh_2B1YqSuJXz1pCe5B_2FbOv7n1GWjkhRBOGondNOwjker4QTIxEa4ukIrw_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>