人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

運用ASP.NET DataGrid顯示主次關系的數據

運用ASP.NET DataGrid顯示主次關系的數據

更新時間:2022-07-13 文章作者:未知 信息來源:網絡 閱讀次數:

大家在實際工作中有沒有遇到要在DataGrid中顯示帶有主次結構的數據呢?如果你對ADO.NET和SQL Server2000熟悉的話,我們下面就舉一個利用VS.NET自帶的示例數據庫Northwind和VB.NET來說明如何實現這一目標。
首先,我們先準備要顯示的帶有主次結構的數據。

下面就是要綁定到HierarchicalDataGrid.aspx的VB.NET代碼文件HierarchicalDataGrid.aspx.vb的內容:

Imports System.Data.SqlClient

Public Class HierarchicalDataGrid
Inherits System.Web.UI.Page
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid

#Region " Web Form Designer Generated Code "

'下面的調用對Web Form設計器來說是必須的
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 這個方法是為Web Form設計器調用的
'不要用代碼編輯器改變這里.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'打開數據庫連接
Dim OrdersConnection As New SqlConnection("Server=(local)\NetSDK;Database=northwind;Trusted_Connection=yes")

'得到訂單和訂單詳細信息
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)

'創建并填充DataSet對象
Dim OrderDataSet As New DataSet()

OrderAdapter.Fill(OrderDataSet)

'設定表名字
OrderDataSet.Tables(0).TableName = "Orders"
OrderDataSet.Tables(1).TableName = "Order Details"

'在基于OrderID字段的兩個表之間建立父子關系
Dim Parent As DataColumn = OrderDataSet.Tables("Orders").Columns("OrderID")
Dim Child As DataColumn = OrderDataSet.Tables("Order Details").Columns("OrderID")

Dim OrderRelation As DataRelation = New DataRelation("OrderRelation", Parent, Child, False)

'為DataSet添加關系
OrderDataSet.Relations.Add(OrderRelation)

'把DataGrid綁定到Orders表
DataGrid1.DataSource = OrderDataSet.Tables("Orders").DefaultView
DataBind()

End Sub

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
e.Item.Cells(0).BackColor = System.Drawing.Color.Ivory
End Sub
End Class

在HierarchicalDataGrid.aspx中,我們為DataGrid1建立模板列,并把另外一個DataGrid嵌入到這個模板列,父一級的DataGrid用來顯示主記錄,比如:訂單。子一級DataGrid用來顯示詳細信息,比如:訂單的詳細信息。我們這樣為子DataGrid動態指定數據源:

DataSource='<%# Ctype(Container.DataItem,DataRowView).CreateChildView("OrderRelation") %>'>

上面這句就是實現顯示主次關系數據的關鍵。根據當前父一級記錄,DataRowView.CreateChildView利用前面創建的關系的名字作為參數獲得子記錄,并把它綁定到子DataGrid上。

下面就是我們要顯示的ASPX頁面的代碼,HierarchicalDataGrid.aspx:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="HierarchicalDataGrid.aspx.vb" Inherits="HierarchicalDataGrid.HierarchicalDataGrid" %>
<%@ Import namespace="System.Data"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>顯示主次關系數據的例子</title>
<meta name="GENERATOR" 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">
<asp: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>訂單號:
<%# DataBinder.Eval(Container.DataItem, "OrderID") %>
</B>
</TD>
</TR>
<TR>
<TD align="right">
<asp:DataGrid id=DataGrid2 runat="server" AutoGenerateColumns="False" BorderColor="#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>
<asp:TemplateColumn HeaderText="產品名稱">
<HeaderStyle Width="300px"></HeaderStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "ProductName") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="UnitPrice" HeaderText="單價"></asp:BoundColumn>
<asp:BoundColumn DataField="Quantity" HeaderText="數量"></asp:BoundColumn>
<asp:BoundColumn DataField="Discount" HeaderText="折扣"></asp:BoundColumn>
</Columns>
</asp:DataGrid></TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid></P>
</form>
</body>
</HTML>

在VS.NET里創建名字為HierarchicalDataGrid的VB.NET ASPX應用程序,輸入上面的代碼,就可以看到下面的結果:
<IMG alt="" src=http://cfan.net.cn/info/"http://xml.sz.luohuedu.net/xml/article/HierarchicalDataGrid.jpg
"

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 阿合奇县| 兴山县| 德保县| 阿城市| 雅江县| 温宿县| 日照市| 石阡县| 阿尔山市| 丽江市| 高要市| 镇康县| 大同市| 任丘市| 山东省| 淳化县| 怀化市| 连城县| 周宁县| 陆川县| 临武县| 石柱| 宝坻区| 大田县| 石台县| 友谊县| 贡嘎县| 丹东市| 大港区| 喀什市| 舞钢市| 滨州市| 梁山县| 荣成市| 博罗县| 衡阳市| 手游| 南昌市| 临洮县| 五家渠市| 吕梁市|