1@ Import Namespace="System.Data"
1<html>
2<script language="C#" runat="server">
3
4ICollection CreateDataSource() {
5DataTable dt = new DataTable();
6DataRow dr;
7
8dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
9dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
10dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
11dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
12
13for (int i = 0; i < 200; i++) {
14dr = dt.NewRow();
15
16dr[0] = i;
17dr[1] = "Item " + Int32.ToString(i);
18dr[2] = DateTime.Now.ToShortDateString();
19dr[3] = (i % 2 != 0) ? true : false;
20
21dt.Rows.Add(dr);
22}
23
24DataView dv = new DataView(dt);
25return dv;
26}
27
28void Page_Load(Object sender, EventArgs e) {
29if (chk1.Checked) {
30MyDataGrid.PagerStyle.Visible=true;
31}
32else {
33MyDataGrid.PagerStyle.Visible=false;
34}
35
36BindGrid();
37}
38
39void PagerButtonClick(Object sender, EventArgs e) {
40//used by external paging UI
41String arg = ((LinkButton)sender).CommandArgument;
42
43switch(arg)
44{
45case ("next"):
46if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
47MyDataGrid.CurrentPageIndex ++;
48break;
49case ("prev"):
50if (MyDataGrid.CurrentPageIndex > 0)
51MyDataGrid.CurrentPageIndex --;
52break;
53case ("last"):
54MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
55break;
56default:
57//page number
58MyDataGrid.CurrentPageIndex = arg.ToInt32();
59break;
60}
61BindGrid();
62}
63
64void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) {
65//used by built-in pager. CurrentPageIndex already set
66BindGrid();
67}
68
69void BindGrid() {
70MyDataGrid.DataSource = CreateDataSource();
71MyDataGrid.DataBind();
72ShowStats();
73}
74
75void ShowStats() {
76lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
77lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
78}
79
80
81</script>
82<body>
83<h3><font face="Verdana">Providing Alternate Paging UI</font></h3>
84<form runat="server">
85<asp:datagrid allowpaging="True" alternatingitemstyle-backcolor="#eeeeee" bordercolor="black" borderwidth="1" cellpadding="3" cellspacing="0" font-name="Verdana" font-size="8pt" gridlines="Both" headerstyle-backcolor="#aaaadd" id="MyDataGrid" onpageindexchanged="MyDataGrid_Page" pagerstyle-horizontalalign="Right" pagerstyle-mode="NumericPages" pagesize="10" runat="server"></asp:datagrid>
86<p>
87<asp:linkbutton commandargument="prev" font-name="verdana" font-size="8pt" forecolor="navy" id="btnPrev" onclick="PagerButtonClick" runat="server" text="Previous page"></asp:linkbutton>
88<asp:linkbutton commandargument="next" font-name="verdana" font-size="8pt" forecolor="navy" id="btnNext" onclick="PagerButtonClick" runat="server" text="Next page"></asp:linkbutton>
89<asp:linkbutton commandargument="7" font-name="verdana" font-size="8pt" forecolor="navy" id="btnPage8" onclick="PagerButtonClick" runat="server" text="Go to Page 8"></asp:linkbutton>
90<asp:linkbutton commandargument="0" font-name="verdana" font-size="8pt" forecolor="navy" id="btnFirst" onclick="PagerButtonClick" runat="server" text="Go to the first page"></asp:linkbutton>
91<asp:linkbutton commandargument="last" font-name="verdana" font-size="8pt" forecolor="navy" id="btnLast" onclick="PagerButtonClick" runat="server" text="Go to the last page"></asp:linkbutton>
92<p>
93<asp:checkbox autopostback="true" font-name="Verdana" font-size="8pt" id="chk1" runat="server" text="Show built-in pager"></asp:checkbox>
94<p>
95<table bgcolor="#eeeeee" cellpadding="6"><tr><td nowrap=""><font face="Verdana" size="-2">
96<asp:label id="lblCurrentIndex" runat="server"></asp:label><br/>
97<asp:label id="lblPageCount" runat="server"></asp:label><br/>
98</font></td></tr></table>
99</p></p></p></form>
100</body>
101</html>
作者:jspfuns