ASP.NET 页面及其后台加载

几种ASP.NET页面显示及后台程序。
一:最简单的用 asp:Repeater
 1 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server" ClientIDMode="Static">
 2     <h2>审批查询</h2>
 3     <p id="page-intro">
 4     </p>
 5     <div class="content-box">
 6         <!-- Start Content Box -->
 7         <div class="content-box-header">
 8             <h3>审批查询</h3>
 9             <div class="clear">
10             </div>
11         </div>
12         <div class="content-box-content">
13             <div id="queryArea" class="content-box-query">
14                 <label>
15                     审批时间:从</label>
16                 <csc:DatePicker ID="dpStartTime" runat="server" CssClass="text-input" maxdateId="dpEndTime" Width="150px">
17                 </csc:DatePicker>
18                 <label>
19                     至</label>
20                 <csc:DatePicker ID="dpEndTime" runat="server" CssClass="text-input" Width="150px" mindateId="dpStartTime">
21                 </csc:DatePicker>
22                 <asp:Button ID="btnQuery" runat="server" CssClass="button mr5" Text="查询" OnClick="btnQuery_Click" />
23             </div>
24             
25                 <asp:Repeater ID="rptData" runat="server">
26                     <HeaderTemplate>
27                         <table>
28                             <colgroup>
29                                 <col style="width:200px;"/>
30                                 <col style="width:100px;"/>
31                                 <col style="width:100px;"/>
32                                 <col style="width:100px;"/>
33                                 <col />
34                             </colgroup>
35                             <thead>
36                                 <tr>
37                                     <th>审批周期</th>
38                                     <th>审批人</th>
39                                     <th>审批时间</th>
40                                     <th>审批意见</th>
41                                     <th>审批备注</th>
42                                 </tr>
43                             </thead>
44                     </HeaderTemplate>
45                     <ItemTemplate>
46                         <tr>
47                             <td><%# Eval("ApprovePeriod") %></td>
48                             <td><%# Eval("ApproveName") %></td>
49                             <td><%# Eval("CreateTime","{0:yyyy-MM-dd HH:mm:ss}") %></td>
50                             <td><%# GetApproveState(Eval("State")) %></td>
51                             <td><%# Eval("ApproveRemark") %></td>
52                         </tr>
53                     </ItemTemplate>
54                     <FooterTemplate>
55                         </table>
56                     </FooterTemplate>
57                 </asp:Repeater>
58            
59             <div id="emptyItem" runat="server" class="empty-data">
60                 没有查找到相关数据
61             </div>
62             <div class="pagination">
63                 <csc:GridPager ID="pagerData" runat="server" AlwaysShow="true" OnPageChanged="pagerWorkItem_PageChanged">
64                 </csc:GridPager>
65             </div>
66             <div class="clear">
67             </div>
68         </div>
69     </div>
70 </asp:Content>
前台代码
 1 public partial class ApprovedQuery :PageBase
 2     {
 3         protected void Page_Load(object sender, EventArgs e)
 4         {
 5             if (!IsPostBack)
 6             {
 7                 BindData();
 8             }
 9         }
10         protected void btnQuery_Click(object sender, EventArgs e)
11         {
12             pagerData.CurrentPageIndex = 1;
13             BindData();
14         }
15 
16         protected void pagerWorkItem_PageChanged(object src, PageChangedEventArgs e)
17         {
18             pagerData.CurrentPageIndex = e.NewPageIndex;
19             BindData();
20         }
21         private void BindData()
22         {
23             DateTime startTime = Convert.ToDateTime(dpStartTime.Text == "" ? "1900-1-1" : dpStartTime.Text);
24             DateTime endTime = dpEndTime.Text == "" ? DateTime.Now: Convert.ToDateTime(dpEndTime.Text);
25             endTime = endTime.AddDays(1);
26             Page<ManHourApproveInfo> data = ManHourApproveService.GetManHourApproveListByCreateTime(pagerData.CurrentPageIndex, ConstUtil.PAGE_SIZE, startTime, endTime);
27             if (data.TotalItems > 0)
28             {
29                 emptyItem.Visible = false;
30                 rptData.Visible = true;
31                 pagerData.RecordCount = (int)data.TotalItems;
32                 rptData.DataSource = data.Items;
33                 rptData.DataBind();
34             }
35             else
36             {
37                 pagerData.RecordCount = 0;
38                 emptyItem.Visible = true;
39                 rptData.Visible = false;
40             }
41         }
42 
43         public string GetApproveState(object state)
44         {
45             int s = (int)state;
46             if (s == 1)
47             {
48                 return "审批通过";
49             }
50             else
51             {
52                 return "审批不通过";
53             }
54         }
55 
56        
57     }
后台代码

最简单基本的一个实现,没什么可以说的。效果如下:

二:用<table>自己画出自己想要的表格

 1 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server" ClientIDMode="Static">
 2     <h2>部门统计</h2>
 3     <p id="page-intro">
 4     </p>
 5     <div class="content-box">
 6         <!-- Start Content Box -->
 7         <div class="content-box-header">
 8             <h3>部门统计</h3>
 9             <div class="clear">
10             </div>
11         </div>
12 
13         <div class="content-box-content">
14             <div id="queryArea" class="content-box-query">
15                 <label>
16                     实际工时时间:从</label>
17                 <csc:DatePicker ID="dpStartTime" runat="server" CssClass="text-input needinput" maxdateId="dpEndTime" Width="150px">
18                 </csc:DatePicker>
19                 <label>
20                     至</label>
21                 <csc:DatePicker ID="dpEndTime" runat="server" CssClass="text-input needinput" Width="150px" mindateId="dpStartTime">
22                 </csc:DatePicker>
23                 <label>
24                     部门</label>
25                 <asp:DropDownList ID="ddlDepartment" runat="server"></asp:DropDownList>
26                 <label>员工姓名</label>
27                 <asp:TextBox ID="txtManName" runat="server" CssClass="text-input"></asp:TextBox>
28                 <asp:Button ID="btnQuery" runat="server" CssClass="button mr5"
29                     Text="查询" OnClick="btnQuery_Click" OnClientClick="return valid('queryArea')" />
30                 <asp:Button ID="btnExt" runat="server" CssClass="button mr5 "
31                     Text="导出" OnClick="btnExt_Click" OnClientClick="return valid('queryArea')" />
32             </div>
33             <div id="dataItem" runat="server" class="content-box-statitics">
34                 <table style="width:1400px;">
35                     <colgroup>                        
36                         <col style="width: 60px;" />
37                         <col style="width: 80px;" />
38                         <col  style="width:50px;"/>
39                         <col  style="width:120px;"/>
40                         <col style="width:120px;"/>
41                         <col  style="width:80px;"/>
42                         <col />
43                         <col  style="width:100px;"/>
44                         <col  style="width:80px;"/>
45                         <col />
46                         <col  style="width:100px;"/>
47                     </colgroup>
48                     <thead>
49                     <tr class="lv1">
50                         <th>姓名</th>
51                         <th>工种</th>
52                         <th>级别</th>
53                         <th>需求单号</th>
54                         <th>标题</th>
55                         <th>状态</th>
56                         <th>任务项</th>
57                         <th>日期</th>
58                         <th>工作小时</th>
59                         <th>完成内容</th>
60                         <th>消耗工时合计</th>
61 
62                     </tr>
63                     </thead>
64                     <tbody>
65                     <asp:Literal ID="ltlGrid" runat="server"></asp:Literal>
66                     </tbody>
67                 </table>
68                    <div style="text-align:right;width:1400px; padding:5px 0 0 0;">
69                         <h3 style="margin-right:20px;"><asp:Literal runat="server"  ID="totalManhour" ></asp:Literal></h3>
70                    </div >
71             </div>
72             <div id="emptyItem" runat="server" class="empty-data">
73                 没有查找到相关数据
74             </div>
75             <div id="beginItem" runat="server" class="empty-data">
76                 请选择日期后进行查询
77             </div>
78             <div class="clear">
79             </div>
80         </div>
81     </div>
82 </asp:Content>
前台代码
 1 public partial class DepartMentStatistics : PageBase
 2     {
 3         protected void Page_Load(object sender, EventArgs e)
 4         {
 5             if (!IsPostBack)
 6             {
 7                 BindDll();   
 8                 beginItem.Visible = true;
 9                 dataItem.Visible = false;
10                 emptyItem.Visible = false;
11             }
12         }
13 
14         private void BindDll()
15         {
16             ddlDepartment.DataSource = ConstDataService.GetConstDataByType(ConstDataType.Department);
17             ddlDepartment.DataTextField = "Name";
18             ddlDepartment.DataValueField = "Code";
19             ddlDepartment.DataBind();
20         }
21 
22         protected void btnQuery_Click(object sender, EventArgs e)
23         {
24             DateTime start = Convert.ToDateTime(dpStartTime.Text);
25             DateTime end = Convert.ToDateTime(dpEndTime.Text).AddDays(1).AddSeconds(-1);
26             IList<CountByDepartment> data = CountByDepartmentService.GetCountByDepartmentByCondition(start, end, ddlDepartment.SelectedValue, txtManName.Text);
27             if (data.Count > 0)
28             {
29                 beginItem.Visible = false;
30                 dataItem.Visible = true;
31                 emptyItem.Visible = false;
32             }
33             else
34             {
35                 beginItem.Visible = false;
36                 dataItem.Visible = false;
37                 emptyItem.Visible = true;
38             }
39             DrawTable(data);
40         }
41 
42         private void DrawTable(IList<CountByDepartment> data)
43         {
44 
45             StringBuilder sb = new StringBuilder();
46             #region 画数据
47             var groups = data.GroupBy(x => x.ManName);
48             foreach (var g in groups.OrderBy(x=>x.Key))
49             {
50                 var sub = data.Where(x => x.ManName == g.Key).OrderBy(x=>x.WorkDate).ThenBy(x=>x.FNId);
51                 int row = 0;
52                 foreach (CountByDepartment cd in sub)
53                 {
54                     sb.Append("<tr>");
55                     if (row == 0)
56                     {
57                         sb.Append("<td rowspan=\"").Append(g.Count()).Append("\">").Append(g.Key).Append("</td>");
58                     }
59                     sb.Append("<td>").Append(GetConstName(cd.Position, ConstDataType.Position)).Append("</td>");
60                     sb.Append("<td>").Append(GetConstName(cd.ManLevel, ConstDataType.PersonLevel)).Append("</td>");
61                     sb.Append("<td>").Append(cd.FNId).Append("</td>");
62                     sb.Append("<td>").Append(cd.FNTitle).Append("</td>");
63                     sb.Append("<td>").Append(GetConstName(cd.WorkItemState, ConstDataType.DemandState)).Append("</td>");
64                     sb.Append("<td>").Append(cd.TaskContent).Append("</td>");
65                     sb.Append("<td>").Append(cd.WorkDate.ToString("yyyy-MM-dd")).Append("</td>");
66                     sb.Append("<td>").Append(cd.ManHour).Append("</td>");
67                     sb.Append("<td>").Append(cd.WorkDescription).Append("</td>");
68                     if (row == 0)
69                     {
70                         sb.Append("<td rowspan=\"").Append(g.Count()).Append("\">").Append(data.Where(x=>x.ManName == g.Key).Sum(x=>x.ManHour)).Append("</td>");
71                     }
72                     sb.Append("</tr>");
73                     row++;
74                 }
75             }
76             #endregion
77             ltlGrid.Text = sb.ToString();
78             totalManhour.Text = data.Sum(x => x.ManHour).ToString();
79         }
80 
81         protected void btnExt_Click(object sender, EventArgs e)
82         {
83             DateTime start = Convert.ToDateTime(dpStartTime.Text);
84             DateTime end = Convert.ToDateTime(dpEndTime.Text).AddDays(1).AddSeconds(-1); ;
85             IList<CountByDepartment> data = CountByDepartmentService.GetCountByDepartmentByCondition(start, end, "", txtManName.Text);
86             data = data.OrderBy(x => x.Department).ThenBy(x => x.ManName).ThenBy(x => x.WorkDate).ToList();
87             DBtoXls.Get().ToXls<CountByDepartment>("DepartmentStatistics", data);
88         }
89 
90         private static string GetConstName(object val, ConstDataType type)
91         {
92             string v = val.ToString();
93             return ConstDataService.GetConstDataName(type, v);
94         }
95     }
后台代码

实现效果如图所示:

posted on 2013-07-30 15:09  冲刺  阅读(360)  评论(0)    收藏  举报

导航