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 }
实现效果如图所示:

浙公网安备 33010602011771号