.net 生成一年范围内的年月日表格并填充需要的数据
2013-05-31 22:27
465 查看
如下图所示,在某个日期有金额时,就在相应的表格中填充金额。
实现代码
Default4.aspx
Default4.aspx.cs
实现代码
Default4.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> table { border-collapse:collapse; } table,td,th{ border:1px solid #ccc; } td { width:30px; } /*模拟对角线*/ .out{ border-top:40px #D6D3D6 solid;/*上边框宽度等于表格第一行行高*/ width:0px;/*让容器宽度为0*/ height:0px;/*让容器高度为0*/ border-left:80px #BDBABD solid;/*左边框宽度等于表格第一行第一格宽度*/ position:relative;/*让里面的两个子容器绝对定位*/ } b{font-style:normal;display:block;position:absolute;top:-40px;left:-40px;width:35px;} em{font-style:normal;display:block;position:absolute;top:-25px;left:-70px;width:55x;} </style> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="btnTest" runat="server" Text="测试" OnClick="btnTest_Click" /><br /> <asp:Repeater runat="server" ID="rptList"> <HeaderTemplate> <table> <tr> <th style="width:80px"> <div class="out"> <b>日期</b> <em>月份</em> </div> </th> <th>1</th> <th>2</th> <th>3</th> <th>4</th> <th>5</th> <th>6</th> <th>7</th> <th>8</th> <th>9</th> <th>10</th> <th>11</th> <th>12 </th> <th>13</th> <th>14</th> <th>15</th> <th>16</th> <th>17</th> <th>18</th> <th>19</th> <th>20</th> <th>21</th> <th>22</th> <th>23</th> <th>24</th> <th>25</th> <th>26</th> <th>27</th> <th>28</th> <th>29</th> <th>30</th> <th>31</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Eval("D0")%></td> <td><%#Eval("D1")%></td> <td><%#Eval("D2")%></td> <td><%#Eval("D3")%></td> <td><%#Eval("D4")%></td> <td><%#Eval("D5")%></td> <td><%#Eval("D6")%></td> <td><%#Eval("D7")%></td> <td><%#Eval("D8")%></td> <td><%#Eval("D9")%></td> <td><%#Eval("D10")%></td> <td><%#Eval("D11")%></td> <td><%#Eval("D12")%></td> <td><%#Eval("D13")%></td> <td><%#Eval("D14")%></td> <td><%#Eval("D15")%></td> <td><%#Eval("D16")%></td> <td><%#Eval("D17")%></td> <td><%#Eval("D18")%></td> <td><%#Eval("D19")%></td> <td><%#Eval("D20")%></td> <td><%#Eval("D21")%></td> <td><%#Eval("D22")%></td> <td><%#Eval("D23")%></td> <td><%#Eval("D24")%></td> <td><%#Eval("D25")%></td> <td><%#Eval("D26")%></td> <td><%#Eval("D27")%></td> <td><%#Eval("D28")%></td> <td><%#Eval("D29")%></td> <td><%#Eval("D30")%></td> <td><%#Eval("D31")%></td> </tr> </ItemTemplate> <FooterTemplate> </table></FooterTemplate> </asp:Repeater> </div> </form> </body> </html>
Default4.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; public partial class Default4 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnTest_Click(object sender, EventArgs e) { DateTime dtStart = new DateTime(2013, 5, 31); DateTime dtEnd = new DateTime(2014, 5, 30); DataTable dt = GetDayData(GetData(), dtStart, dtEnd); rptList.DataSource = dt; rptList.DataBind(); } DataTable GetData() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("Date", typeof(System.String))); dt.Columns.Add(new DataColumn("Money", typeof(System.Decimal))); dr = dt.NewRow(); dr[0] = new DateTime(2013, 5, 10).ToString("yyyyMMdd"); dr[1] = 200; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = new DateTime(2013, 5, 30).ToString("yyyyMMdd"); dr[1] = 250; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = new DateTime(2013, 5, 31).ToString("yyyyMMdd"); dr[1] = 290; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = new DateTime(2013, 9, 8).ToString("yyyyMMdd"); dr[1] = 500; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = new DateTime(2014, 5, 30).ToString("yyyyMMdd"); dr[1] = 880; dt.Rows.Add(dr); return dt; } DataTable GetDayData(DataTable dtData, DateTime dtStart, DateTime dtEnd) { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("D0", typeof(System.String))); dt.Columns.Add(new DataColumn("D1", typeof(System.String))); dt.Columns.Add(new DataColumn("D2", typeof(System.String))); dt.Columns.Add(new DataColumn("D3", typeof(System.String))); dt.Columns.Add(new DataColumn("D4", typeof(System.String))); dt.Columns.Add(new DataColumn("D5", typeof(System.String))); dt.Columns.Add(new DataColumn("D6", typeof(System.String))); dt.Columns.Add(new DataColumn("D7", typeof(System.String))); dt.Columns.Add(new DataColumn("D8", typeof(System.String))); dt.Columns.Add(new DataColumn("D9", typeof(System.String))); dt.Columns.Add(new DataColumn("D10", typeof(System.String))); dt.Columns.Add(new DataColumn("D11", typeof(System.String))); dt.Columns.Add(new DataColumn("D12", typeof(System.String))); dt.Columns.Add(new DataColumn("D13", typeof(System.String))); dt.Columns.Add(new DataColumn("D14", typeof(System.String))); dt.Columns.Add(new DataColumn("D15", typeof(System.String))); dt.Columns.Add(new DataColumn("D16", typeof(System.String))); dt.Columns.Add(new DataColumn("D17", typeof(System.String))); dt.Columns.Add(new DataColumn("D18", typeof(System.String))); dt.Columns.Add(new DataColumn("D19", typeof(System.String))); dt.Columns.Add(new DataColumn("D20", typeof(System.String))); dt.Columns.Add(new DataColumn("D21", typeof(System.String))); dt.Columns.Add(new DataColumn("D22", typeof(System.String))); dt.Columns.Add(new DataColumn("D23", typeof(System.String))); dt.Columns.Add(new DataColumn("D24", typeof(System.String))); dt.Columns.Add(new DataColumn("D25", typeof(System.String))); dt.Columns.Add(new DataColumn("D26", typeof(System.String))); dt.Columns.Add(new DataColumn("D27", typeof(System.String))); dt.Columns.Add(new DataColumn("D28", typeof(System.String))); dt.Columns.Add(new DataColumn("D29", typeof(System.String))); dt.Columns.Add(new DataColumn("D30", typeof(System.String))); dt.Columns.Add(new DataColumn("D31", typeof(System.String))); for (DateTime dtDay = dtStart; Convert.ToInt32(dtDay.ToString("yyyyMM")) <= Convert.ToInt32(dtEnd.ToString("yyyyMM")); dtDay = dtDay.AddMonths(1)) { dr = dt.NewRow(); for (int j = 0; j < 32; j++) { if (j == 0) { dr[j] = dtDay.ToString("yyyy年MM月"); } else { int daysInMonth = DateTime.DaysInMonth(dtDay.Year, dtDay.Month); if (j <= daysInMonth) { string dtCurrent = new DateTime(dtDay.Year, dtDay.Month, j).ToString("yyyyMMdd"); DataRow[] datarows = dtData.Select("Date='" + dtCurrent + "'"); if (datarows.Length > 0) { dr[j] = Convert.ToDecimal(datarows[0]["Money"]).ToString("N"); } } } } dt.Rows.Add(dr); } return dt; } }
相关文章推荐
- .net 生成一年范围内的年月日表格并填充需要的数据
- .net 动态生成Word文档并填充数据
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- 向.net后端发送请求获取数据,在前端动态填充表格
- Java Swing JTable 表格【1:创建表格填充数据】
- Caffe学习笔记10:图像数据生成caffe需要的(laveldb和lmdb)数据文件
- 用excel数据批量填充word表格
- 如何处理需要填充的数据为空的情况
- json 填充表格数据 转置
- .NET中动态生成的表格,当鼠标经过tr时改变tr当前颜色,当鼠标移开恢复原来的颜色
- .net 数据表格显示控件介绍
- 巧用 ROW_NUMBER() 生成不重复的唯一排序码,按客户的需要任意排序数据
- 利用table动态生成表格并填充内容/和panel做一个可控制显示/隐藏的小玩意
- 利用动软代码生成器 自动生成LINQ需要用的数据实体类 (转)
- .NET下使用DataAdapter保存数据时,如何生成command语句及使用事务
- Java类,生成Dojo_Gird表格的json数据格式
- 根据Sql表格数据自动生成InsertInto的SP(spRD_AutoGenInsertSql)
- 从数据库读取UI源数据自动化生成Windows 界面(.net环境中Windows开发的自动化界面系统构架研究 续一)
- 金蝶EAS,打开新页面,传递参数,KDTable表格数据填充
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能