多级分类统计列表实现

开发 后端
这次火车订票系统的多表之间联合查询非常频繁,有的甚至为了实现某个统计功能,经过查询多个视图(视图再查询视图),我想这个性能消耗挺大的。

由于学校火车订票系统需要按学院班级统计票数和钱数。实现如下图所示列表。以下直奔主题。

aspx页面部分代码:

  1. <asp:SqlDataSource ID="SqlDataSource1" runat="server"   
  2.           ConnectionString="<%$ ConnectionStrings:TrainConnectionString %>" > 
  3.       </asp:SqlDataSource> 
  4.   <div style="color:#4C4847;font-size:16px;margin:0 auto;text-align:center;padding:10px;font-weight:bold;"> 
  5.  
  6.       福州大学火车订票系统-订票明细表(<%=DateTime.Now.ToShortDateString() %></div> 
  7.       <asp:ListView ID="lsvAcademe" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="AcademeID" > 
  8.       <EmptyDataTemplate> 
  9.           <div style="color:red;font-size:16px;margin:0 auto;text-align:center;">对不起,没有找到您想要的数据!</div> 
  10.       </EmptyDataTemplate> 
  11.       <LayoutTemplate> 
  12.           <table class="order-list-table"> 
  13.               <tr> 
  14.                   <th>学院</th><th>票数</th><th>硬座总价</th><th>预收总价</th> 
  15.                   <th>班级</th><th>票数</th><th>硬座总价</th><th>预收总价</th> 
  16.                   <tr>              
  17.               <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder> 
  18.               <td colspan="8" style="height:0;"></td> 
  19.               </tr> 
  20.           </table> 
  21.       </LayoutTemplate> 
  22.       <ItemTemplate> 
  23.            <td rowspan='<%# Eval("ClassCount") %>' ><%# Eval("Academe") %></td> 
  24.            <td rowspan='<%# Eval("ClassCount") %>' ><%# Eval("TicketCount") %></td> 
  25.            <td rowspan='<%# Eval("ClassCount") %>' ><%# String.Format("{0:0.0}",Eval("HardseatTotal")) %></td> 
  26.            <td rowspan='<%# Eval("ClassCount") %>' ><%# String.Format("{0:0.0}",Eval("AdvanceTotal")) %></td>                  
  27.           <uc1:ListViewClass ID="ListViewClass1" runat="server" AcademeID='<%#Eval("AcademeID") %>' /> 
  28.       </ItemTemplate>   
  29.       </asp:ListView>\  

其中我用到了Listview控件的嵌套,但是我将其分离为一个独立的用户控件。
控件的显示代码:

  1. <asp:ListView runat="server" ID="lsvClass" DataSourceID="SqlDataSource1"> 
  2.             <LayoutTemplate>                 
  3.                 <asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder> 
  4.             </LayoutTemplate> 
  5.             <ItemTemplate> 
  6.                 <td><%#Eval("ClassName") %></td> 
  7.                 <td><%#Eval("TicketCount") %></td> 
  8.                 <td><%#String.Format("{0:0.0}",Eval("HardSeatTotal")) %></td> 
  9.                 <td><%#String.Format("{0:0.0}",Eval("AdvanceTotal")) %></td></tr><tr>                  
  10.             </ItemTemplate> 
  11. </asp:ListView> 
  12. <asp:SqlDataSource ID="SqlDataSource1" runat="server"   
  13.     ConnectionString="<%$ ConnectionStrings:TrainConnectionString %>"   
  14.     SelectCommand="SELECT * FROM [V_DetailOrderListForClass]"></asp:SqlDataSource> 
  15.  

控件的cs页面代码:

  1. namespace Website.Controls  
  2. {  
  3.     public partial class ListViewClass : System.Web.UI.UserControl  
  4.     {  
  5.         private string academeID;  
  6.         public string AcademeID  
  7.         {  
  8.             set { academeID = value; }  
  9.         }  
  10.         protected void Page_Load(object sender, EventArgs e)  
  11.         {  
  12.             SqlDataSource1.SelectCommand = "SELECT * From [V_DetailOrderListForClass] where AcademeID=@AcademeID";  
  13.             SqlDataSource1.SelectParameters.Add("AcademeID",System.TypeCode.Int32, academeID);  
  14.             lsvClass.DataBind();  
  15.         }  
  16.     }  

这次火车订票系统的多表之间联合查询非常频繁,有的甚至为了实现某个统计功能,经过查询多个视图(视图再查询视图),我想这个性能消耗挺大的。

原文链接:http://www.17aspx.com/html/aspnet/controls/2011/1017/4478.html

责任编辑:张伟 来源: ASP.NET学习网
相关推荐

2009-12-07 11:31:51

PHP分类列表

2011-05-18 13:43:52

jQueryAjaxPHP

2015-08-17 10:50:51

美团多级下拉菜单简洁

2024-02-20 14:10:55

系统缓存冗余

2010-05-17 14:08:18

MySQL 多级同步

2023-05-05 18:38:33

多级缓存Caffeine开发

2010-03-11 15:56:15

Python列表

2015-11-12 16:21:38

Python计数方法

2010-10-18 13:16:24

GalleryAndroid

2011-03-02 15:35:15

Oracle分组统计

2023-10-12 08:00:48

2022-06-13 10:23:34

Helios缓存服务端

2010-03-04 15:24:14

Python程序

2017-05-24 15:50:08

PythonCPython

2021-01-21 05:45:07

Go字数统计

2023-11-07 14:30:28

Python开发

2023-12-08 07:55:37

MySQL数据统计InnoDB

2010-08-18 09:03:46

jQueryJSONTrimpath

2011-09-05 13:53:08

Sencha Touc列表

2011-01-26 08:59:11

jQueryjavascriptweb
点赞
收藏

51CTO技术栈公众号