多級分類統(tǒng)計列表實現
作者:admin
這次火車訂票系統(tǒng)的多表之間聯(lián)合查詢非常頻繁,有的甚至為了實現某個統(tǒng)計功能,經過查詢多個視圖(視圖再查詢視圖),我想這個性能消耗挺大的。
由于學?;疖囉喥毕到y(tǒng)需要按學院班級統(tǒng)計票數和錢數。實現如下圖所示列表。以下直奔主題。
aspx頁面部分代碼:
- <asp:SqlDataSource ID="SqlDataSource1" runat="server"
- ConnectionString="<%$ ConnectionStrings:TrainConnectionString %>" >
- </asp:SqlDataSource>
- <div style="color:#4C4847;font-size:16px;margin:0 auto;text-align:center;padding:10px;font-weight:bold;">
- 福州大學火車訂票系統(tǒng)-訂票明細表(<%=DateTime.Now.ToShortDateString() %>)</div>
- <asp:ListView ID="lsvAcademe" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="AcademeID" >
- <EmptyDataTemplate>
- <div style="color:red;font-size:16px;margin:0 auto;text-align:center;">對不起,沒有找到您想要的數據!</div>
- </EmptyDataTemplate>
- <LayoutTemplate>
- <table class="order-list-table">
- <tr>
- <th>學院</th><th>票數</th><th>硬座總價</th><th>預收總價</th>
- <th>班級</th><th>票數</th><th>硬座總價</th><th>預收總價</th>
- <tr>
- <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
- <td colspan="8" style="height:0;"></td>
- </tr>
- </table>
- </LayoutTemplate>
- <ItemTemplate>
- <td rowspan='<%# Eval("ClassCount") %>' ><%# Eval("Academe") %></td>
- <td rowspan='<%# Eval("ClassCount") %>' ><%# Eval("TicketCount") %></td>
- <td rowspan='<%# Eval("ClassCount") %>' ><%# String.Format("{0:0.0}",Eval("HardseatTotal")) %></td>
- <td rowspan='<%# Eval("ClassCount") %>' ><%# String.Format("{0:0.0}",Eval("AdvanceTotal")) %></td>
- <uc1:ListViewClass ID="ListViewClass1" runat="server" AcademeID='<%#Eval("AcademeID") %>' />
- </ItemTemplate>
- </asp:ListView>\
其中我用到了Listview控件的嵌套,但是我將其分離為一個獨立的用戶控件。
控件的顯示代碼:
- <asp:ListView runat="server" ID="lsvClass" DataSourceID="SqlDataSource1">
- <LayoutTemplate>
- <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
- </LayoutTemplate>
- <ItemTemplate>
- <td><%#Eval("ClassName") %></td>
- <td><%#Eval("TicketCount") %></td>
- <td><%#String.Format("{0:0.0}",Eval("HardSeatTotal")) %></td>
- <td><%#String.Format("{0:0.0}",Eval("AdvanceTotal")) %></td></tr><tr>
- </ItemTemplate>
- </asp:ListView>
- <asp:SqlDataSource ID="SqlDataSource1" runat="server"
- ConnectionString="<%$ ConnectionStrings:TrainConnectionString %>"
- SelectCommand="SELECT * FROM [V_DetailOrderListForClass]"></asp:SqlDataSource>
控件的cs頁面代碼:
- namespace Website.Controls
- {
- public partial class ListViewClass : System.Web.UI.UserControl
- {
- private string academeID;
- public string AcademeID
- {
- set { academeID = value; }
- }
- protected void Page_Load(object sender, EventArgs e)
- {
- SqlDataSource1.SelectCommand = "SELECT * From [V_DetailOrderListForClass] where AcademeID=@AcademeID";
- SqlDataSource1.SelectParameters.Add("AcademeID",System.TypeCode.Int32, academeID);
- lsvClass.DataBind();
- }
- }
- }
這次火車訂票系統(tǒng)的多表之間聯(lián)合查詢非常頻繁,有的甚至為了實現某個統(tǒng)計功能,經過查詢多個視圖(視圖再查詢視圖),我想這個性能消耗挺大的。
原文鏈接:http://www.17aspx.com/html/aspnet/controls/2011/1017/4478.html
責任編輯:張偉
來源:
ASP.NET學習網