<
table
width
="778"
border
="0"
align
="center"
cellpadding
="0"
cellspacing
="0"
>
< tr >
< td align ="center" >
< asp:GridView ID ="myGridView" runat ="server" AllowPaging ="True" DataKeyNames ="id"
AutoGenerateColumns ="False" Width ="100%" PageSize ="25" OnRowDataBound ="myGridView_RowDataBound" AllowSorting ="True" OnSorting ="myGridView_Sorting" OnPageIndexChanging ="myGridView_PageIndexChanging" EmptyDataText ="沒有記錄" OnRowCreated ="myGridView_RowCreated" >
< Columns >
< asp:BoundField HeaderText ="序號" />
< asp:BoundField DataField ="empno" SortExpression ="empno" HeaderText ="工號" />
< asp:BoundField DataField ="cname" SortExpression ="cname" HeaderText ="姓名" />
< asp:BoundField DataField ="sex" SortExpression ="sex" HeaderText ="性別" />
< asp:BoundField DataField ="age" SortExpression ="age" HeaderText ="年齡" />
< asp:BoundField DataField ="linecode" SortExpression ="linecode" HeaderText ="拉名" />
< asp:BoundField DataField ="hold_date" DataFormatString ="{0:MM月dd日yyyy年}" HeaderText ="入廠日期" HtmlEncode ="False" SortExpression ="hold_date" />
< asp:BoundField DataField ="g_time" DataFormatString ="{0:MM月dd日yyyy年}" HeaderText ="體檢日期" HtmlEncode ="False" SortExpression ="g_time" />
< asp:CommandField HeaderText ="操作" ShowEditButton ="True" />
< asp:TemplateField >
< HeaderTemplate >
< input id ="CheckAll" type ="checkbox" onclick ="selectAll(this)" />
</ HeaderTemplate >
< ItemTemplate >
< input id ="chkID" name ="chkID" type ="checkbox" value ='<%# Eval("empno")% > ' οnclick="selectOne(this)" />
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
< HeaderStyle BackColor ="Gainsboro" />
< PagerSettings PageButtonCount ="15" Visible ="False" />
</ asp:GridView >
</ td >
</ tr >
</ table >
< table width ="778" height ="25" border ="0" align ="center" cellpadding ="0" cellspacing ="0" >
< tr >
< td >
< asp:Label ID ="labRecordCount" runat ="server" ></ asp:Label >
< asp:Label ID ="labPageCount" runat ="server" ></ asp:Label >
< asp:Label ID ="labPageRecord" runat ="server" ></ asp:Label >
</ td >
< td align ="right" >
< asp:LinkButton ID ="btnFirst" CommandArgument ="first" OnClick ="PagerButtonClick" runat ="server" > 首 页 </ asp:LinkButton >
< asp:LinkButton ID ="btnPrev" CommandArgument ="prev" OnClick ="PagerButtonClick" runat ="server" > 上一页 </ asp:LinkButton >
< asp:LinkButton ID ="btnNext" CommandArgument ="next" OnClick ="PagerButtonClick" runat ="server" > 下一页 </ asp:LinkButton >
< asp:LinkButton ID ="btnLast" CommandArgument ="last" OnClick ="PagerButtonClick" runat ="server" > 尾 页 </ asp:LinkButton >
</ td >
</ tr >
</ table >
< tr >
< td align ="center" >
< asp:GridView ID ="myGridView" runat ="server" AllowPaging ="True" DataKeyNames ="id"
AutoGenerateColumns ="False" Width ="100%" PageSize ="25" OnRowDataBound ="myGridView_RowDataBound" AllowSorting ="True" OnSorting ="myGridView_Sorting" OnPageIndexChanging ="myGridView_PageIndexChanging" EmptyDataText ="沒有記錄" OnRowCreated ="myGridView_RowCreated" >
< Columns >
< asp:BoundField HeaderText ="序號" />
< asp:BoundField DataField ="empno" SortExpression ="empno" HeaderText ="工號" />
< asp:BoundField DataField ="cname" SortExpression ="cname" HeaderText ="姓名" />
< asp:BoundField DataField ="sex" SortExpression ="sex" HeaderText ="性別" />
< asp:BoundField DataField ="age" SortExpression ="age" HeaderText ="年齡" />
< asp:BoundField DataField ="linecode" SortExpression ="linecode" HeaderText ="拉名" />
< asp:BoundField DataField ="hold_date" DataFormatString ="{0:MM月dd日yyyy年}" HeaderText ="入廠日期" HtmlEncode ="False" SortExpression ="hold_date" />
< asp:BoundField DataField ="g_time" DataFormatString ="{0:MM月dd日yyyy年}" HeaderText ="體檢日期" HtmlEncode ="False" SortExpression ="g_time" />
< asp:CommandField HeaderText ="操作" ShowEditButton ="True" />
< asp:TemplateField >
< HeaderTemplate >
< input id ="CheckAll" type ="checkbox" onclick ="selectAll(this)" />
</ HeaderTemplate >
< ItemTemplate >
< input id ="chkID" name ="chkID" type ="checkbox" value ='<%# Eval("empno")% > ' οnclick="selectOne(this)" />
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
< HeaderStyle BackColor ="Gainsboro" />
< PagerSettings PageButtonCount ="15" Visible ="False" />
</ asp:GridView >
</ td >
</ tr >
</ table >
< table width ="778" height ="25" border ="0" align ="center" cellpadding ="0" cellspacing ="0" >
< tr >
< td >
< asp:Label ID ="labRecordCount" runat ="server" ></ asp:Label >
< asp:Label ID ="labPageCount" runat ="server" ></ asp:Label >
< asp:Label ID ="labPageRecord" runat ="server" ></ asp:Label >
</ td >
< td align ="right" >
< asp:LinkButton ID ="btnFirst" CommandArgument ="first" OnClick ="PagerButtonClick" runat ="server" > 首 页 </ asp:LinkButton >
< asp:LinkButton ID ="btnPrev" CommandArgument ="prev" OnClick ="PagerButtonClick" runat ="server" > 上一页 </ asp:LinkButton >
< asp:LinkButton ID ="btnNext" CommandArgument ="next" OnClick ="PagerButtonClick" runat ="server" > 下一页 </ asp:LinkButton >
< asp:LinkButton ID ="btnLast" CommandArgument ="last" OnClick ="PagerButtonClick" runat ="server" > 尾 页 </ asp:LinkButton >
</ td >
</ tr >
</ table >
CS:
1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11
12
13public partial class ComEmployee : System.Web.UI.Page
14{
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 if (!IsPostBack)
18 {
19 this.txtDate.Text = DateTime.Now.ToString("MM/dd/yyyy");
20 this.btnGetEmp.Attributes["onclick"] = "changeStatus();";
21 GridViewBind();
22 }
23 }
24 private void GridViewBind()
25 {
26 WebClass.NewEmpClass tmp = new WebClass.NewEmpClass();
27 DataTable dt = tmp.ComEmployyeeList();
28 DataView dv = dt.DefaultView;
29 if (ViewState["SortExpression"] != null)
30 {
31 dv.Sort = ViewState["SortExpression"].ToString() + " " + ViewState["SortDirection"].ToString();
32 }
33 myGridView.DataSource = dv;
34 myGridView.DataBind();
35 labRecordCount.Text = "共<font color='red'>" + dt.Rows.Count.ToString() + "</font>筆記錄";
36 labPageCount.Text = "頁次<font color='blue'>" + (myGridView.PageIndex + 1).ToString() + "</font>/<font color='red'>" + myGridView.PageCount.ToString() + "</font>頁";
37 labPageRecord.Text = "<font color='red'>" + myGridView.PageSize.ToString() + "</font>筆記錄/頁";
38
39 if (dt.Rows.Count == 0)
40 {
41 btnFirst.Visible = false;
42 btnPrev.Visible = false;
43 btnNext.Visible = false;
44 btnLast.Visible = false;
45
46 labRecordCount.Visible = false;
47 labPageCount.Visible = false;
48 labPageRecord.Visible = false;
49 }
50 else if (myGridView.PageCount == 1)
51 {
52 btnFirst.Visible = false;
53 btnPrev.Visible = false;
54 btnNext.Visible = false;
55 btnLast.Visible = false;
56 }
57
58 btnFirst.CommandName = "1";
59 btnPrev.CommandName = (myGridView.PageIndex == 0 ? "1" : myGridView.PageIndex.ToString());
60 btnNext.CommandName = (myGridView.PageCount == 1 ? myGridView.PageCount.ToString() : (myGridView.PageIndex + 2).ToString());
61 btnLast.CommandName = myGridView.PageCount.ToString();
62 BtnValidate();
63 }
64 private void BtnValidate()
65 {
66 if (myGridView.PageIndex + 1 >= myGridView.PageCount)
67 {
68 btnNext.Enabled = false;
69 btnLast.Enabled = false;
70 }
71 else
72 {
73 btnNext.Enabled = true;
74 btnLast.Enabled = true;
75 }
76 if (myGridView.PageIndex + 1 <= 1)
77 {
78 btnPrev.Enabled = false;
79 btnFirst.Enabled = false;
80 }
81 else
82 {
83 btnPrev.Enabled = true;
84 btnFirst.Enabled = true;
85 }
86 }
87 protected void PagerButtonClick(object sender, EventArgs e)
88 {
89 myGridView.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
90 GridViewBind();
91 }
92 protected void myGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
93 {
94 myGridView.PageIndex = e.NewPageIndex;
95 GridViewBind();
96 }
97 protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
98 {
99 if (e.Row.RowIndex != -1)
100 {
101 int orderID = this.myGridView.PageIndex * this.myGridView.PageSize + e.Row.RowIndex + 1;
102 e.Row.Cells[0].Text = orderID.ToString();
103 }
104 }
105 protected void myGridView_Sorting(object sender, GridViewSortEventArgs e)
106 {
107 ViewState["SortExpression"] = e.SortExpression;
108 if (ViewState["SortDirection"] == null)
109 {
110 ViewState["SortDirection"] = "asc";
111 }
112 else
113 {
114 if (ViewState["SortDirection"].ToString() == "asc")
115 {
116 ViewState["SortDirection"] = "desc";
117 }
118 else
119 {
120 ViewState["SortDirection"] = "asc";
121 }
122 }
123 GridViewBind();
124 }
125 protected void imgbtnUpdate_Click(object sender, ImageClickEventArgs e)
126 {
127 GridViewBind();
128 }
129 protected void btnGetEmp_Click(object sender, EventArgs e)
130 {
131 string strEmpno = Request.Form.Get("chkID");
132 WebClass.NewEmpClass tmp = new WebClass.NewEmpClass();
133 tmp.CheckNewEmployyee(strEmpno);
134 }
135 protected void myGridView_RowCreated(object sender, GridViewRowEventArgs e)
136 {
137 if (e.Row != null && e.Row.RowType == DataControlRowType.Header)
138 {
139 string strSortBy = (string)ViewState["SortExpression"];
140 string strSortAscending = (string)ViewState["SortAscending"];
141 string strOrder = (strSortAscending == "yes" ? "5" : "6");
142
143 for (int i = 0; i < myGridView.Columns.Count; i++)
144 {
145 if (strSortBy == myGridView.Columns[i].SortExpression)
146 {
147 TableCell cell = e.Row.Cells[i];
148 Label lblSorted = new Label();
149 lblSorted.Font.Name = "webdings";
150 lblSorted.Font.Size = FontUnit.XSmall;
151 lblSorted.Text = strOrder;
152 cell.Controls.Add(lblSorted);
153 }
154 }
155 }
156 }
157}
158
有点郁闷,在DataGrid中,页面加载的时候默认排序字段会有箭头.
GridView同样的原理就没有.只有点击的时候才有,这样的话在页面加载时就不知道按照什么排序.