当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 给上次的DataGrid分页增加些功能!

ASP.NET
.NET:InTheHand提供的类操作SMS
捕捉WPF应用程序中XAML代码解析异常
学习asp.net之SQL语句查询效率和安全性
一个不被flash、select、activex遮挡的、跨frame的无限分级菜单
探索 ASP.NET Futures
MSDN Visual系列:创建SharePoint Services解决方案包
.net中如何给数据表实体类赋值的方法
关于C#静态构造函数的几点说明
经典教程:用.net动态创建类的实例
ASP.NET 遍历配置文件的连接字符串
ASP.Net中利用CSS实现多界面两法
ASP.NET生成静态HTML页面并分别按年月目录存放
如何在ASP.net(C#)下操作XML文件
技巧应用:ASP.Net中的MD5加密
三层架构各层间的访问过程
asp.net初学者:petshop4.0设计说明
asp.net利用RAR实现文件压缩解压缩
.NET2.0抓取网页全部链接
给初学.net的您几点建议
如何实现ASP.NET网站个性化

ASP.NET 中的 给上次的DataGrid分页增加些功能!


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 39 ::
收藏到网摘: n/a

<%@ Import Namespace="System.Data" %>

<html>
<script language="C#" runat="server">

ICollection CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("DateTimeValue", typeof(string)));
dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));

for (int i = 0; i < 200; i++) {
dr = dt.NewRow();

dr[0] = i;
dr = "Item " + Int32.ToString(i);
dr = DateTime.Now.ToShortDateString();
dr = (i % 2 != 0) ? true : false;

dt.Rows.Add(dr);
}

DataView dv = new DataView(dt);
return dv;
}

void Page_Load(Object sender, EventArgs e) {
if (chk1.Checked) {
MyDataGrid.PagerStyle.Visible=true;
}
else {
MyDataGrid.PagerStyle.Visible=false;
}

BindGrid();
}

void PagerButtonClick(Object sender, EventArgs e) {
//used by external paging UI
String arg = ((LinkButton)sender).CommandArgument;

switch(arg)
{
case ("next"):
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
MyDataGrid.CurrentPageIndex ++;
break;
case ("prev"):
if (MyDataGrid.CurrentPageIndex > 0)
MyDataGrid.CurrentPageIndex --;
break;
case ("last"):
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
default:
//page number
MyDataGrid.CurrentPageIndex = arg.ToInt32();
break;
}
BindGrid();
}

void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) {
//used by built-in pager. CurrentPageIndex already set
BindGrid();
}

void BindGrid() {
MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
ShowStats();
}

void ShowStats() {
lblCurrentIndex.Text = "CurrentPageIndex is " + MyDataGrid.CurrentPageIndex;
lblPageCount.Text = "PageCount is " + MyDataGrid.PageCount;
}


</script>

<body>

<h3><font face="Verdana">Providing Alternate Paging UI</font></h3>

<form runat=server>

<ASP:DataGrid id="MyDataGrid" runat="server"
AllowPaging="True"
PageSize="10"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
/>

<p>
<asp:LinkButton id="btnPrev" runat="server"
Text="Previous page"
CommandArgument="prev"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>

<asp:LinkButton id="btnNext" runat="server"
Text="Next page"
CommandArgument="next"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>

<asp:LinkButton id="btnPage8" runat="server"
Text="Go to Page 8"
CommandArgument="7"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>

<asp:LinkButton id="btnFirst" runat="server"
Text="Go to the first page"
CommandArgument="0"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>

<asp:LinkButton id="btnLast" runat="server"
Text="Go to the last page"
CommandArgument="last"
ForeColor="navy"
Font-Name="verdana" Font-size="8pt"
OnClick="PagerButtonClick"
/>


<p>
<asp:Checkbox id="chk1" runat="server"
Text="Show built-in pager"
Font-Name="Verdana"
Font-Size="8pt"
AutoPostBack="true"
/>

<p>
<table bgcolor="#eeeeee" cellpadding="6"><tr><td nowrap><font face="Verdana" size="-2">

<asp:Label id="lblCurrentIndex" runat="server" /><br>
<asp:Label id="lblPageCount" runat="server" /><br>

</font></td&