按月分组的ASP.NET组数据
发布时间:2020-12-16 09:48:46 所属栏目:asp.Net 来源:网络整理
导读:我希望按月分组一些数据(存储在SQL数据库中),使用可折叠的DIV,毫无疑问是使用jQuery.我并不特别想使用GridView,因为我在编写jQuery时希望远离表格. 在ASP.NET中执行此操作的最佳方法是什么,我将使用哪种控件? 请参阅以下示例,了解我要描述的内容: 解决方法
我希望按月分组一些数据(存储在SQL数据库中),使用可折叠的DIV,毫无疑问是使用jQuery.我并不特别想使用GridView,因为我在编写jQuery时希望远离表格.
在ASP.NET中执行此操作的最佳方法是什么,我将使用哪种控件? 请参阅以下示例,了解我要描述的内容: 解决方法
我创建了一个按月使用嵌套转发器按月显示数据的项目,它在
Google Docs上传(只需单击文件 – >保存即可下载.zip).
以下是其工作原理的简要概述: 假设您在db中有一个简单的Orders表,其中包含以下列 > OrderId 处理 >执行存储过程以获取给定年份的月份(我使用EntityFramework函数,您可以将其更改为ADO.NET,LINQ等) 码 存储过程: CREATE PROCEDURE dbo.GetMonthsByYear @Year INT AS BEGIN SELECT DISTINCT DATENAME(Month,DateOfSale) AS [Month] FROM Orders WHERE Year(DateOfSale) = @Year END CREATE PROCEDURE dbo.GetOrdersByMonth @Month NVARCHAR(15),@Year INT AS BEGIN SELECT * FROM Orders WHERE (Year(DateOfSale) = @Year) AND DATENAME(MONTH,DateOfSale) = @Month END ASPX: <head runat="server"> <script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script> <script type="text/javascript"> var showHide; $(document).ready(function () { showHide = function (control) { var parent = $(control).next(); var display = parent.css('display'); if (display == "none") { parent.fadeIn('slow'); } else { parent.fadeOut('slow'); } }; }); </script> <style type="text/css"> .detail { height:300px; display:none; width: 100%; border: 1px solid black; } .header { vertical-align: top; padding: 3px; height: 30px; background: black; color: White; font-weight: bold; } </style> <title>Nested Repeater</title> </head> <body> <form id="form1" runat="server"> <div> Select year: <asp:TextBox ID="txtYear" runat="server" /><br /> <asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="Search" /><br /> <asp:Repeater ID="masterRepeater" runat="server" OnItemDataBound="ItemDataBound"> <ItemTemplate> <div id='<%# Container.DataItem %>' class="header" onclick="showHide(this);"> <asp:Label ID="lblMonth" runat="server" Text='<%# Container.DataItem %>' /> </div> <div class="detail"> <asp:Repeater ID="detailRepeater" runat="server"> <HeaderTemplate> <span style="text-decoration: underline">Product</span><br /> </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblName" runat="server" Text='<%# Bind("Product") %>' /> <asp:Label ID="lblQuantity" runat="server" Text='<%# Bind("Quantity") %>' /> <asp:Label ID="lblDateOfSale" runat="server" Text='<%# Bind("DateOfSale") %>' /><br /> </ItemTemplate> </asp:Repeater> </div> </ItemTemplate> </asp:Repeater> </div> </form> </body> 代码背后: protected void Search(object sender,EventArgs e) { int year = 0; if (Int32.TryParse(txtYear.Text,out year)) { orderEntities orders = new orderEntities(); List<string> months = orders.GetMonthByYear(year).ToList(); masterRepeater.DataSource = months; masterRepeater.DataBind(); } } protected void ItemDataBound(object sender,RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { int year = 0; if (Int32.TryParse(txtYear.Text,out year)) { Label lblMonth = e.Item.FindControl("lblMonth") as Label; if (lblMonth != null) { string month = lblMonth.Text; Repeater detailRepeater = e.Item.FindControl("detailRepeater") as Repeater; if (detailRepeater != null) { orderEntities orders = new orderEntities(); var ordersByMonth = orders.GetOrdersByMonth(month,year).ToList(); detailRepeater.DataSource = ordersByMonth; detailRepeater.DataBind(); } } } } } 结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 请在ASP.NET MVC中等待页面
- asp.net-mvc – ASP MVC.NET3本地IIS7对象引用错误
- asp.net-mvc – 如何在ASP.NET MVC控制器中设置十进制分隔符
- asp.net <%$...%>语法
- asp.net-mvc – 使用asp.net MVC重定向到404页面
- asp.net – SQL – 两个不同长度的字符串之间的相似性
- ASP.net – 多个上传与jQuery多文件上传插件
- asp.net-mvc-3 – 你能在ASP.net MVC3中使用嵌套视图模型吗
- asp.net-mvc – Chrome34忽略域名为“.cloudapp.net”的coo
- asp.net-mvc – IIS6中的ASP.NET MVC压缩选项