在這裏總結了一個資料分頁控件PagedDataSource,首先在頁面的類庫中添加如下代碼
public static PagedDataSource Pds;
//源代碼加入以下代碼,一般放在GridView 或者是Repeater控件之後
<asp:Label ID="lblMessage" runat="server" Text="Label"></asp:Label>
当前第<font color="red"><asp:Label ID="lblCurrentPage" runat="server"></asp:Label></font>页<br />
<asp:Label ID="LabCountPage" runat="server" Text="Label" Visible="false"></asp:Label>
<asp:LinkButton ID="lbFirst" runat="server" OnClick="lbFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="lbPre" runat="server" OnClick="lbPre_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lbNext" runat="server" OnClick="lbNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lbLast" runat="server" OnClick="lbLast_Click">最后一页</asp:LinkButton><br />
源文件
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.lblCurrentPage.Text ="1";
this.contrlRepeater();
}
}
private void contrlRepeater()
{
Comment_Bll comment_bll = new Comment_Bll();
Pds = new PagedDataSource();
int companyID = Convert.ToInt32(Request.QueryString["companyID"]); //公司ID号
Pds.DataSource = comment_bll.Get_commentCompanySet_byCompanyID(companyID).DefaultView;
int recCount = Pds.Count;//总的记录数
Pds.AllowPaging = true;
Pds.PageSize = 10;//每页显示10条记录
Pds.CurrentPageIndex = Convert.ToInt32(this.lblCurrentPage.Text) - 1;
int pageCount = Pds.PageCount; //页数
this.LabCountPage.Text = pageCount.ToString();//总页数
this.lblMessage.Text = "(共<font color='red'>" + recCount.ToString() + "</font>条记录 <font color='red'>" + pageCount.ToString() + "</font>页)";
this.lbPre.Enabled = true;
this.lbFirst.Enabled = true;
this.lbNext.Enabled = true;
this.lbLast.Enabled = true;
if (Pds.CurrentPageIndex < 1)
{
this.lbPre.Enabled = false;
this.lbFirst.Enabled = false;
}
if (Pds.CurrentPageIndex == Pds.PageCount - 1)
{
this.lbNext.Enabled = false;
this.lbLast.Enabled = false;
}
this.rptCommentCompany.DataSource = Pds;
this.rptCommentCompany.DataBind();
}
protected void lbFirst_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = "1";
this.contrlRepeater();
}
protected void lbPre_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) - 1);
this.contrlRepeater();
//else
}
protected void lbNext_Click(object sender, EventArgs e)
{
int cur = Convert.ToInt32(this.lblCurrentPage.Text.Trim()) + 1;
this.lblCurrentPage.Text =cur.ToString() ;
this.contrlRepeater();
}
protected void lbLast_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = this.LabCountPage.Text;
this.contrlRepeater();
}