#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); }
/// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.LinkButtonFirst.Click += new System.EventHandler(this.LinkButtonFirst_Click); this.PreTen.Click += new System.EventHandler(this.PreTen_Click); this.NextTen.Click += new System.EventHandler(this.NextTen_Click); this.LinkButton1Last.Click += new System.EventHandler(this.LinkButton1Last_Click); this.Load += new System.EventHandler(this.Page_Load); this.LinkButton1.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton2.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton3.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton4.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton5.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton6.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton7.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton8.Click += new System.EventHandler(this.PageButton_Click); this.LinkButton9.Click += new System.EventHandler(this.PageButton_Click);
可以重写footeritem写在footeritem里面.
/// 函数名:ShowPage
/// </summary>
/// <param name="pageNum">当前页数</param>
/// <param name="maxPage">总页数</param>
/// <param name="pageShow">显示几页</param>
/// <param name="url">要链接的地址</param>
/// <param name="otherPara">其他参数</param>
/// <param name="symbol">page前的符号</param>
/// <returns>显示分页的字符串</returns>
public static string ShowPage( int pageNum, int maxPage, int pageShow, string url, string otherPara, char symbol )
{
int firstPage, lastPage;
StringBuilder sb = new StringBuilder(); if( ( symbol != '?' ) && ( symbol != '&' ) )
symbol = '?'; if( maxPage <= pageShow )
{
firstPage = 1;
lastPage = maxPage;
}
else
{
if( pageNum < ( pageShow / 2 ) )
{
firstPage = 1;
lastPage = pageShow;
}
else if( ( maxPage - pageNum ) < ( pageShow / 2 ) )
{
firstPage = maxPage - pageShow + 1;
lastPage = maxPage;
}
else
{
firstPage = pageNum - Convert.ToInt32( Math.Floor( (double)( pageShow / 2 ) ) );
lastPage = pageNum + Convert.ToInt32( Math.Floor( (double)( pageShow / 2 ) ) );
}
} sb.Append( "总页数 (" + maxPage + "): " );
sb.Append( " <a href=\"" + url + symbol + "page=1" + otherPara + "\" title=\"第一页\"><font face=\"Webdings\">9</font></a> " );
if( ( pageNum - Math.Floor( (double)( pageShow / 2 ) ) ) > 1 )
sb.Append( " <a href=\"" + url + symbol + "page=" + ( pageNum - pageShow ) + otherPara + "\" title=\"前" + pageShow + "页\"><font face=\"Webdings\">7</font></a> " );
for( int i = firstPage; i <= lastPage; i++ )
{
if( i == pageNum )
sb.Append( " [<b>" + i + "</b>] " );
else
sb.Append( " <a href=\"" + url + symbol + "page=" + i + otherPara + "\"><b>" + i + "</b></a> " );
}
if( ( pageNum + Math.Floor( (double)( pageShow / 2 ) ) ) < maxPage )
sb.Append( " <a href=\"" + url + symbol + "page=" + ( pageNum + pageShow ) + otherPara + "\" title=\"后" + pageShow + "页\"><font face=\"Webdings\">8</font></a> " );
sb.Append( " <a href=\"" + url + symbol + "page=" + maxPage + otherPara + "\" title=\"最后页\"><font face=\"Webdings\">:</font></a> " ); return sb.ToString();
}
2. 在Page_Load处理Request.QueryString["page"],根据分页处理所取的数据
<TABLE id="Table1" cellSpacing="0" cellPadding="0" border="0">
<TR>
<TD><asp:datagrid id="DataGrid1" runat="server" Height="216px" Width="576px" AllowPaging="True" PageSize="5">
<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid></TD>
</TR>
<TR>
<TD align="right">
<TABLE id="Table2" cellSpacing="2" cellPadding="2" border="0">
<TR>
<TD>
<asp:LinkButton id="LinkButtonFirst" runat="server">首页</asp:LinkButton></TD>
<TD>
<asp:LinkButton id="PreTen" runat="server">前十页</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton1" runat="server" CommandName="0">1</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton2" runat="server" CommandName="1">2</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton3" runat="server" CommandName="2">3</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton4" runat="server" CommandName="3">4</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton5" runat="server" CommandName="4">5</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton6" runat="server" CommandName="5">6</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton7" runat="server" CommandName="6">7</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton8" runat="server" CommandName="7">8</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton9" runat="server" CommandName="8">9</asp:LinkButton></TD>
<TD><asp:LinkButton id="NextTen" runat="server">后十页</asp:LinkButton></TD>
<TD><asp:LinkButton id="LinkButton1Last" runat="server">末页</asp:LinkButton></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</form>
*************************************************
public class DataGrid页码式翻页 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList myDataList;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.WebControls.LinkButton LinkButton2;
protected System.Web.UI.WebControls.LinkButton LinkButton3;
protected System.Web.UI.WebControls.LinkButton LinkButton4;
protected System.Web.UI.WebControls.LinkButton LinkButton5;
protected System.Web.UI.WebControls.LinkButton LinkButton6;
protected System.Web.UI.WebControls.LinkButton LinkButton7;
protected System.Web.UI.WebControls.LinkButton LinkButton8;
protected System.Web.UI.WebControls.LinkButton LinkButton9;
protected System.Web.UI.WebControls.LinkButton LinkButtonFirst;
protected System.Web.UI.WebControls.LinkButton LinkButton1Last;
protected System.Web.UI.WebControls.LinkButton PreTen;
protected System.Web.UI.WebControls.LinkButton NextTen;
protected System.Web.UI.WebControls.Button btn;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
this.BindData(0);
}
}
private void BindData(int pageIndex)
{
DataTable dt = new DataTable(); dt.Columns.Add("field1");dt.Columns.Add("field2");dt.Columns.Add("field3");dt.Columns.Add("field4");dt.Columns.Add("field5");
dt.Columns["field5"].DataType = (0M).GetType();
//这只是些测试数据:
dt.Rows.Add(new object[]{"aga",70,DateTime.Now.AddDays(1),"ehwa34hehaw3haw3",1.23});
dt.Rows.Add(new object[]{"aweg",2,DateTime.Now.AddDays(10),"uyfl76lehaw3haw3",31.23});
dt.Rows.Add(new object[]{"a4haaa",2,DateTime.Now.AddDays(13),"GWEGW#32tawehaw3haw3",54.787});
dt.Rows.Add(new object[]{"drjtakab",12,DateTime.Now.AddDays(19),"#$^#&#&ehaw3haw3",1.23});
dt.Rows.Add(new object[]{"hsraac",22,DateTime.Now.AddDays(11),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"mdrth",5,DateTime.Now.AddDays(-15),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"drtb111",3,DateTime.Now.AddDays(7),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"mdrth",5,DateTime.Now.AddDays(-25),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"mdrth",5,DateTime.Now.AddDays(-65),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"mdrth",5,DateTime.Now.AddDays(-5),"asegawegawehaw3haw3",1.23});dt.Rows.Add(new object[]{"mdrth",5,DateTime.Now.AddDays(-5),"asegawegawehaw3haw3",1.23});
dt.Rows.Add(new object[]{"ag3ca",4,DateTime.Now,"asegawegawehaw3haw3",1.23});
for(int i=0;i<99;i++)
dt.Rows.Add(new object[]{i.ToString(),4,DateTime.Now.AddMonths(i),"XXXX",1.23});
dt.AcceptChanges(); this.DataGrid1.CurrentPageIndex = pageIndex; this.DataGrid1.DataSource = dt;
this.DataGrid1.DataBind(); ViewState["CurrentPages"] = (int)pageIndex/10; DetailButtonVisible(pageIndex,this.DataGrid1.PageCount); Response.Write("当前显示的是第"+(pageIndex+1).ToString()+"页:");
}
{
//此方法还应该根据当前页码以及总页数处理哪些翻页按钮可见,哪些不可见,并且更改按钮的数字文本
//不同的情况要充分考虑,作为例子,这里只写一点
if(ViewState["CurrentPages"]!=null)
for(int i=1;i<10;i++)
{
LinkButton lbtn = (LinkButton)Page.FindControl("LinkButton"+i.ToString());
int tmp = Convert.ToInt32(ViewState["CurrentPages"].ToString());
tmp = tmp*10+i;
lbtn.Text = tmp.ToString();
if(tmp-1>=pageCount)
lbtn.Enabled = false;
else
lbtn.Enabled=true;
}
} private void LinkButtonFirst_Click(object sender, System.EventArgs e)
{
this.BindData(0);
} private void PreTen_Click(object sender, System.EventArgs e)
{
int tmp = Convert.ToInt32(ViewState["CurrentPages"].ToString());
if(tmp>0)
this.BindData(tmp*10-1);
} private void NextTen_Click(object sender, System.EventArgs e)
{
int tmp = Convert.ToInt32(ViewState["CurrentPages"].ToString());
this.BindData((tmp+1)*10);
} private void LinkButton1Last_Click(object sender, System.EventArgs e)
{
this.BindData(this.DataGrid1.PageCount-1);
} private void PageButton_Click(object sender, System.EventArgs e)
{
int tmp = Convert.ToInt32(((LinkButton)sender).CommandName);
tmp += 10*Convert.ToInt32(ViewState["CurrentPages"].ToString());
this.BindData(tmp);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.LinkButtonFirst.Click += new System.EventHandler(this.LinkButtonFirst_Click);
this.PreTen.Click += new System.EventHandler(this.PreTen_Click);
this.NextTen.Click += new System.EventHandler(this.NextTen_Click);
this.LinkButton1Last.Click += new System.EventHandler(this.LinkButton1Last_Click);
this.Load += new System.EventHandler(this.Page_Load);
this.LinkButton1.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton2.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton3.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton4.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton5.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton6.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton7.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton8.Click += new System.EventHandler(this.PageButton_Click);
this.LinkButton9.Click += new System.EventHandler(this.PageButton_Click);
}
#endregion
}
请跟我联系[email protected]
回了很多人的帖子啊