//1。用DataGrid分页的方法很多,我采用的是在(OnPageIndexChanged="MyGridPage")的
//事件编程。
//2。在LinkButton中要注意设置:(OnClick=" " CommandArgument=" ")这两个是关键,在后台代 码中也要用。
//把下面这段代码放在<from></from>之间
/
<asp:DataGrid id="dg" style="Z-INDEX: 100; LEFT: 160px; POSITION: absolute; TOP: 48px" runat="server" AutoGenerateColumns="False" PageSize="8" AllowPaging="True" Font-Size="9pt" Font-Names="Times New Roman" Width="264px" ForeColor="#006633" BackColor="#CCCCFF" BorderWidth="1px" PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages" OnPageIndexChanged="MyGridPage">
<HeaderStyle BackColor="#339999"></HeaderStyle>
<FooterStyle BackColor="#336699"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="数据库中字段" HeaderText="名称"></asp:BoundColumn>
<asp:BoundColumn DataField="数据库中字段" HeaderText="名称"></asp:BoundColumn>
<asp:BoundColumn DataField="数据库中字段" HeaderText="名称"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
<asp:Checkbox id="chk1" style="Z-INDEX: 108; LEFT: 432px; POSITION: absolute; TOP: 200px" runat="server" Font-Size="8pt" AutoPostBack="true" Text="显示内置的页数" Font-Name="Verdana"></asp:Checkbox><asp:Label id="la" style="Z-INDEX: 102; LEFT: 160px; POSITION: absolute; TOP: 32px" runat="server"Width="120px" Font-Size="9pt" ForeColor="#8080FF"></asp:Label>
<asp:Label id="lb" style="Z-INDEX: 103; LEFT: 296px; POSITION: absolute; TOP: 32px" runat="server"
Width="120px" Font-Size="9pt" ForeColor="#8080FF"></asp:Label>
<asp:LinkButton id="LinkButton1" style="Z-INDEX: 104; LEFT: 424px; POSITION: absolute; TOP: 56px"
runat="server" OnClick="Pager" CommandArgument="0">首页</asp:LinkButton>
<asp:LinkButton id="LinkButton2" style="Z-INDEX: 105; LEFT: 424px; POSITION: absolute; TOP: 88px"
runat="server" OnClick="Pager" CommandArgument="next">下一页</asp:LinkButton>
<asp:LinkButton id="LinkButton3" style="Z-INDEX: 106; LEFT: 424px; POSITION: absolute; TOP: 120px"runat="server" OnClick="Pager" CommandArgument="pre">前一页</asp:LinkButton>
<asp:LinkButton id="LinkButton4" style="Z-INDEX: 107; LEFT: 424px; POSITION: absolute; TOP: 152px"runat="server" OnClick="Pager" CommandArgument="last">后页</asp:LinkButton>
//后台代码实现:
//
using System.Data.SqlClient ;
private void Page_Load(object sender, System.EventArgs e)
{
BindGrid();
if (chk1.Checked )
{
dg.PagerStyle .Visible =true;
}
else
{
dg.PagerStyle .Visible =false;
}
public void Pager(object sender,EventArgs e)
{
string arg=((LinkButton)sender).CommandArgument.ToString() ;
switch(arg)
{
case("next"):
if(dg.CurrentPageIndex<(dg.PageCount -1))
dg.CurrentPageIndex ++;
break;
case("pre"):
if(dg.CurrentPageIndex>0)
dg.CurrentPageIndex --;
break;
case("last"):
dg.CurrentPageIndex =(dg.PageCount-1);
break;
default:
dg.CurrentPageIndex =System.Convert.ToInt32 (arg);
break;
}
BindGrid();
}
}
public void MyGridPage(Object sender, DataGridPageChangedEventArgs e)
{
//处理按下数字的方法
dg.CurrentPageIndex = e.NewPageIndex;
BindGrid();
int startIndex ;
startIndex = dg.CurrentPageIndex * dg.PageSize; }
ICollection CreateDataSource()//获取数据空中数据并放入dataset
{
string connectionString="server=JIANGHUA;user id=sa;password=; database=northwind";
SqlConnection mycon=new SqlConnection ();
mycon.ConnectionString =connectionString;
string sql;
sql="select customerid,address,city from customers order by customerid ";
SqlDataAdapter myadp=new SqlDataAdapter (sql,mycon);
DataSet myds =new DataSet ();
myadp.Fill(myds);
mycon.Close ();
return myds.Tables[0].DefaultView;
}
public void BindGrid()
{
dg.DataSource =CreateDataSource();
dg.DataBind ();
la.Text ="当前共有"+dg.PageCount +"页";
lb.Text ="当前是第"+dg.CurrentPageIndex +1+"页";
}