给上次的DataGrid分页增加些功能!

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

Published At
Categories with Web编程
Tagged with
comments powered by Disqus