时间:2021-07-01 10:21:17 帮助过:39人阅读
- <br><asp:GridView ID="GridView1" SkinID="GridView" runat="server" AutoGenerateColumns="false" <br>Width="100%" AllowPaging="true" PageSize="10"> <br><Columns> <br><asp:TemplateField HeaderStyle-Width="1%"> <br><ItemTemplate> <br><asp:Image ID="imgFlag" runat="server" ImageUrl="~/images/dn.gif" /> <br></ItemTemplate> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:TemplateField> <br><asp:BoundField DataField="CustomerID" HeaderText="客户编号" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="CompanyName" HeaderText="公司名称" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="ContactName" HeaderText="联系人" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="ContactTitle" HeaderText="联系人职务" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="Address" HeaderText="联系地址" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="City" HeaderText="所在城市" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:TemplateField HeaderText="联系电话" HeaderStyle-Width="10%"> <br><ItemTemplate> <br><asp:HiddenField ID="HCustomerID" runat="server" Value='<%#Eval("CustomerID")%>' /> <br><%#Eval("Phone")%> <br><tr runat="server" id="TRCustomers" style="display: none"> <br><td> <br></td> <br><td colspan="7"> <br><asp:GridView ID="GridViewOrders" SkinID="GridView" runat="server" Width="100%" AutoGenerateColumns="false" <br>OnRowDataBound="doOnRowDataBoundOrders"> <br><Columns> <br><asp:TemplateField HeaderStyle-Width="1%"> <br><ItemTemplate> <br><asp:Image ID="imgFlag1" runat="server" ImageUrl="~/images/dn.gif" /> <br></ItemTemplate> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:TemplateField> <br><asp:BoundField DataField="OrderID" HeaderText="订单编号" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="OrderDate" HeaderText="下单日期" HeaderStyle-Width="10%" DataFormatString="{0:d}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="RequiredDate" HeaderText="要求日期" HeaderStyle-Width="10%" <br>DataFormatString="{0:d}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="ShippedDate" HeaderText="发货日期" HeaderStyle-Width="10%" <br>DataFormatString="{0:d}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="Freight" HeaderText="重量" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="ShipName" HeaderText="发货名称" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:TemplateField HeaderText="邮政编码" HeaderStyle-Width="10%"> <br><ItemTemplate> <br><asp:HiddenField ID="HOrderID" runat="server" Value='<%#Eval("OrderID")%>' /> <br><%#Eval("ShipPostalCode")%> <br><tr runat="server" id="TROrders" style="display: none"> <br><td> <br></td> <br><td colspan="7"> <br><asp:GridView ID="GridViewOrderDetails" SkinID="GridView" runat="server" Width="100%" <br>AutoGenerateColumns="false"> <br><Columns> <br><asp:BoundField DataField="ProductName" HeaderText="产品名称" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="Quantity" HeaderText="数量" HeaderStyle-Width="10%" DataFormatString="{0:N}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="UnitPrice" HeaderText="单价" HeaderStyle-Width="10%" DataFormatString="{0:N}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="OPrice" HeaderText="总价" HeaderStyle-Width="10%" DataFormatString="{0:N}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="Discount" HeaderText="折扣" HeaderStyle-Width="10%" DataFormatString="{0:P}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="PPrice" HeaderText="折扣总价" HeaderStyle-Width="10%" DataFormatString="{0:N}"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br><asp:BoundField DataField="QuantityPerUnit" HeaderText="包装规格" HeaderStyle-Width="10%"> <br><ItemStyle HorizontalAlign="Center" /> <br></asp:BoundField> <br></Columns> <br></asp:GridView> <br></td> <br></tr> <br></ItemTemplate> <br></asp:TemplateField> <br></Columns> <br></asp:GridView> <br></td> <br></tr> <br></ItemTemplate> <br></asp:TemplateField> <br></Columns> <br></asp:GridView> <br> <br>后台代码 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load <br>If Not IsPostBack Then <br>BindGridView() <br>End If <br>End Sub <br>'1.首先找出Customers数据 <br>Public Sub BindGridView() <br>Dim strSQL As String = "SELECT * FROM Customers" <br>Dim dtTable As DataTable = GetDataTable(strSQL) <br>sCount = dtTable.Rows.Count <br>Me.GridView1.DataSource = dtTable <br>Me.GridView1.DataBind() <br>End Sub <br>'Customers数据绑定时要做的事情 <br>Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound <br>If e.Row.RowType = DataControlRowType.DataRow Then <br>Dim HCustomerID As String = CType(e.Row.FindControl("HCustomerID"), HiddenField).Value <br>Dim TRCustomers As HtmlTableRow = CType(e.Row.FindControl("TRCustomers"), HtmlTableRow) <br>If HCustomerID.Trim.Length > 0 Then <br>'鼠标移过时变换css样式。 <br>e.Row.Attributes.Add("onmouseover", "currentcolor=this.className;this.className='MouseOver';") <br>e.Row.Attributes.Add("onmouseout", "this.className=currentcolor;") <br>'找出此Customer的所有Orders <br>Dim strSQL As String = "SELECT * FROM Orders WHERE CustomerID='" & HCustomerID & "'" <br>Dim dtTable As DataTable = GetDataTable(strSQL) <br>Dim imgFlag As Image = CType(e.Row.FindControl("imgFlag"), Image) <br>If dtTable.Rows.Count > 0 Then <br>Dim GridViewOrders As GridView = CType(e.Row.FindControl("GridViewOrders"), GridView) <br>GridViewOrders.DataSource = dtTable <br>GridViewOrders.DataBind() <br>'设置点击某行时的Javascript <br>Dim strScript As New StringBuilder <br>strScript.Append("var obj = document.getElementById('" & TRCustomers.ClientID & "');") <br>strScript.Append("var objimg = document.getElementById('" & imgFlag.ClientID & "');") <br>strScript.Append("if (obj.style.display == 'none') {") <br>strScript.Append(" obj.style.display = '';") <br>strScript.Append(" objimg.src = 'images/up.gif';") <br>strScript.Append("}else{") <br>strScript.Append(" obj.style.display = 'none';") <br>strScript.Append(" objimg.src = 'images/dn.gif';") <br>strScript.Append("}") <br>e.Row.Attributes.Add("onclick", strScript.ToString) <br>Else <br>imgFlag.ImageUrl = "~/images/up.gif" <br>End If <br>End If <br>End If <br>End Sub <br>Protected Sub doOnRowDataBoundOrders(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) <br>If e.Row.RowType = DataControlRowType.DataRow Then <br>Dim HOrderID As String = CType(e.Row.FindControl("HOrderID"), HiddenField).Value <br>Dim TROrders As HtmlTableRow = CType(e.Row.FindControl("TROrders"), HtmlTableRow) <br>If HOrderID.Trim.Length > 0 Then <br>'鼠标移过时变换css样式。 <br>e.Row.Attributes.Add("onmouseover", "currentcolor=this.className;this.className='MouseOver';") <br>e.Row.Attributes.Add("onmouseout", "this.className=currentcolor;") <br>'找出此Order的所有Order Details <br>Dim strSQL As String = "SELECT Products.ProductName, [Order Details].UnitPrice, [Order Details].Quantity, [Order Details].UnitPrice * [Order Details].Quantity AS OPrice, [Order Details].Discount, " & _ <br>"([Order Details].UnitPrice * [Order Details].Quantity) * (1.00 - [Order Details].Discount) AS PPrice, Products.QuantityPerUnit " & _ <br>"FROM [Order Details] INNER JOIN Products ON [Order Details].ProductID = Products.ProductID " & _ <br>"WHERE OrderID='" & HOrderID & "'" <br>Dim dtTable As DataTable = GetDataTable(strSQL) <br>Dim imgFlag1 As Image = CType(e.Row.FindControl("imgFlag1"), Image) <br>If dtTable.Rows.Count > 0 Then <br>Dim GridViewOrderDetails As GridView = CType(e.Row.FindControl("GridViewOrderDetails"), GridView) <br>GridViewOrderDetails.DataSource = dtTable <br>GridViewOrderDetails.DataBind() <br>'设置点击某行时的Javascript <br>Dim strScript As New StringBuilder <br>strScript.Append("var obj = document.getElementById('" & TROrders.ClientID & "');") <br>strScript.Append("var objimg = document.getElementById('" & imgFlag1.ClientID & "');") <br>strScript.Append("if (obj.style.display == 'none') {") <br>strScript.Append(" obj.style.display = '';") <br>strScript.Append(" objimg.src = 'images/up.gif';") <br>strScript.Append("}else{") <br>strScript.Append(" obj.style.display = 'none';") <br>strScript.Append(" objimg.src = 'images/dn.gif';") <br>strScript.Append("}") <br>e.Row.Attributes.Add("onclick", strScript.ToString) <br>End If <br>End If <br>End If <br>End Sub <br></li><li> </li><li> </li></ol></pre>