imgBtnPrevPage.Enabled = false;//已经处于首页则上一页按钮不可用 if (this.PageCount != 1)//如果总页数不为1则使下一页按钮可用 {
imgBtnNextPage.Enabled = true; } }
#endregion
#region 上一页按钮事件
///
///
protected void imgBtnPrevPage_Click(object sender, ImageClickEventArgs e) {
if (this.CurrentPage > 1) {
int PageOrder = this.CurrentPage - 1; if (JudgePageOrder(PageOrder)) {
OnGoToPage(PageOrder); }
if (this.CurrentPage == 1)//如果当前页已经是第一页了,则是上一页按钮不可用 {
imgBtnPrevPage.Enabled = false; }
if (this.CurrentPage != this.PageCount)//如果当前页不等于总页数,则使得下一页按钮可用 {
imgBtnNextPage.Enabled = true; } } else {
ScriptManager.RegisterStartupScript(this, this.GetType(), \, \这已经是第一页了!');\, true); return; } }
#endregion
#region 上一页按钮事件
///
///
protected void imgBtnNextPage_Click(object sender, ImageClickEventArgs e) {
if (this.CurrentPage < this.PageCount) {
int PageOrder = this.CurrentPage + 1; if (JudgePageOrder(PageOrder)) {
OnGoToPage(PageOrder); }
if (this.CurrentPage == this.PageCount)//如果当前页等于总页数则使得下一页按钮不可用 {
imgBtnNextPage.Enabled = false; }
if (this.CurrentPage != 1)//如果当前页不等于1则使得前一页按钮可用 {
imgBtnPrevPage.Enabled = true; } } else {
ScriptManager.RegisterStartupScript(this, this.GetType(), \, \这已经是最后一页了!');\, true); return; } }
#endregion
#region 尾页按钮事件 ///
///
protected void imgBtnLastPage_Click(object sender, ImageClickEventArgs e) {
int PageOrder = this.PageCount;
if (JudgePageOrder(PageOrder)) {
OnGoToPage(PageOrder); }
imgBtnNextPage.Enabled = false;//已经处于尾页,使下一页按钮不可用 if (this.PageCount != 1)//如果总页数不等于1,则使得前一页按钮可用 {
imgBtnPrevPage.Enabled = true; } }
#endregion
#region 转到指定页按钮事件 ///
///
protected void imgBtnGoPage_Click(object sender, ImageClickEventArgs e) { try {
if (string.IsNullOrEmpty(txtToPage.Text.Trim())) {
return; }
if (!IsInt(txtToPage.Text.Trim())) {
ScriptManager.RegisterStartupScript(this, this.GetType(),
\请输入整数!');\, true); return; }
if (Convert.ToInt64(txtToPage.Text.Trim()) > PageCount) {
ScriptManager.RegisterStartupScript(this, this.GetType(),
\请输入小于最大页数的整数!');\, true); return; }
if (Convert.ToInt32(txtToPage.Text.Trim()) < 1) {
ScriptManager.RegisterStartupScript(this, this.GetType(),
\请输入大于0的整数!');\, true); return;
\,
\,
\,
}
int page = Convert.ToInt32(txtToPage.Text); int PageOrder = page;
if (JudgePageOrder(PageOrder)) {
OnGoToPage(PageOrder); } } catch {
txtToPage.Text = \; } }
#endregion
大家发现没有,实现imgBtnGoPage_Click事件的时候调用了一个IsInt()方法,这个方法的实现如下:
#region 验证用户输入转到页面的正确性
private bool IsInt(string toPage) {
bool flag = false;
if (string.IsNullOrEmpty(toPage)) return flag; else {
flag = Regex.IsMatch(toPage, @\); }
return flag; } #endregion
好了,再仔细观察代码是不是发现,这几个事件里面都有一段相同的代码:
if (JudgePageOrder(PageOrder))
{
OnGoToPage(PageOrder); }
我来详细的解释一下:
JudgePageOrder(PageOrder)用来判断跳转的页面是否合法(通俗的讲就是有没有超出页面范围): #region 判断PageOrder的合法性 ///
/// 判断PageOrder的合法性 ///
/// ///
private bool JudgePageOrder(int PageOrder) {
if (PageOrder < 1) return false;
if (PageOrder > PageCount) return false; return true; }
#endregion
OnGoToPage(PageOrder)就是我们文章开始讲的核心了,是这个asp.net分页控件的核心!在后面
的实例中我会告诉大家如何来用。先把代码罗列给大家:
protected virtual bool OnGoToPage(int gotoPageIndex) {
if (GoPage != null) {
this.CurrentPage = gotoPageIndex;
GoPage(gotoPageIndex);//触发核心事件,来关联数据 }
return true; }
asp.net分页控件已经描述完了,由于个人不擅长讲解,所以请大家包涵。下面继续讲解这个asp.net分页控件的调用的一个实例!
前台代码有两点需要注意: 1.需要注册这个asp.net分页控件。
<%@ Register src=\ tagname=\ tagprefix=\ %> 2.调用的代码是:
完整的代码如下: <%@
Page
Language=\ html
PUBLIC
AutoEventWireup=\ \
XHTML
CodeFile=\ 1.0
Transitional//EN\
Inherits=\ %>
\
<%@ Register Assembly=\Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\ Namespace=\ TagPrefix=\ %> <%@ Register src=\ tagname=\ tagprefix=\ %>