在ASP.NET中实现自定义分页功能

在ASP.NET中实现自定义分页功能:

第一步:在前台页码中定义翻页的按钮

< table >< tr >< td style = " text-align: center;   height: 5%;width:100%  " >
                    
< asp:LinkButton ID = " lnkbtnFirst "  runat = " server "  CssClass = " text_gg  "  Enabled = " False "
                        Font
- Bold = " false "  OnClick = " PagerButtonClick " > 首页 </ asp:LinkButton >
                    
< asp:LinkButton ID = " lnkbtnPre "  runat = " server "  CssClass = " text_gg  "  Enabled = " False "
                        OnClick
= " PagerButtonClick " > 上一页 </ asp:LinkButton >
                    
< asp:LinkButton ID = " lnkbtnNext "  runat = " server "  CssClass = " text_gg  "  Enabled = " False "
                        OnClick
= " PagerButtonClick " > 下一页 </ asp:LinkButton >
                    
< asp:LinkButton ID = " lnkbtnLast "  runat = " server "  CssClass = " text_gg  "  Enabled = " False "
                        OnClick
= " PagerButtonClick " > 末页 </ asp:LinkButton >
                    
< asp:Label ID = " lblPageCount "  runat = " server "  Text = " 共?页 " ></ asp:Label >
                    
< asp:Label ID = " lblCurrentIndex "  runat = " server "  Text = " 第?页 " ></ asp:Label >
                    
< asp:LinkButton ID = " lnkbtnJumpPage "  runat = " server "  CssClass = " text_gg  "  OnClick = " lnkbtnJumpPage_Click "
                        OnClientClick
= " return checkGoPage() " > 转到 </ asp:LinkButton >< asp:TextBox ID = " txtJumpPage "  runat = " server "   onkeypress = " return InputLimit() "
                        onpaste
= " return false "  Width = " 24px " ></ asp:TextBox >< asp:Label ID = " lblRecordpage "  runat = " server "  Text = " " ></ asp:Label ></ td >  
                
</ tr >
                
</ table >

 

第二步:在对应CS文件里写分页按钮触发的事件

 

#region 分页方法

    
public void FillGridView()
    
...
    
protected void PagerButtonClick(object sender, EventArgs e)
    
{

        
// 给页面中GRIDVIEW绑定数据源
        SiteAreaGridView.DataSource = siteBaseInfoManager.GetSiteAreaList();
        SiteAreaGridView.PageIndex 
= Convert.ToInt32(((LinkButton)sender).CommandArgument) - 1;
        SiteAreaGridView.DataBind();
        
// 更新当前页面显示值

        lblCurrentIndex.Text 
= "第 " + (SiteAreaGridView.PageIndex + 1).ToString() + " 页";
        
this.currentPage.Value = (SiteAreaGridView.PageIndex + 1).ToString();
        
// 更新参数
        lnkbtnPre.CommandArgument = (SiteAreaGridView.PageIndex == 0 ? "1" : SiteAreaGridView.PageIndex.ToString());
        lnkbtnNext.CommandArgument 
= (SiteAreaGridView.PageCount == 1 ? SiteAreaGridView.PageCount.ToString() : (SiteAreaGridView.PageIndex + 2).ToString());
        SetLinkButtonEnabled();
    }


    
/// <summary>
    
/// 用于设置按钮的状态
    
/// </summary>

    public void SetLinkButtonEnabled()
    
{

        
if (SiteAreaGridView.PageCount == SiteAreaGridView.PageIndex + 1)
        
{
            lnkbtnNext.Enabled 
= false;
            lnkbtnLast.Enabled 
= false;
        }

        
else
        
{                     
            lnkbtnNext.Enabled 
= true;
            lnkbtnLast.Enabled 
= true;
        }

        
if (SiteAreaGridView.PageIndex == 0)
        
{
            lnkbtnPre.Enabled 
= false;
            lnkbtnFirst.Enabled 
= false;

        }

        
else
        
{
            lnkbtnPre.Enabled 
= true;
            lnkbtnFirst.Enabled 
= true;

        }


    }

    
/// <summary>
    
/// 点击”转到“按钮时候触发的事件
    
/// </summary>
    
/// <param name="sender"></param>
    
/// <param name="e"></param>

    protected void lnkbtnJumpPage_Click(object sender, EventArgs e)
    
{

        
// 重新绑定数据源
        SiteAreaGridView.DataSource = siteBaseInfoManager.GetSiteAreaList();
        SiteAreaGridView.PageIndex 
= int.Parse(txtJumpPage.Text) - 1;
        SiteAreaGridView.DataBind();
        
// 更新当前页面显示值

        lblCurrentIndex.Text 
= "第 " + (SiteAreaGridView.PageIndex + 1).ToString() + " 页";
        
this.currentPage.Value = (SiteAreaGridView.PageIndex + 1).ToString();
        
// 更新参数
        lnkbtnPre.CommandArgument = (SiteAreaGridView.PageIndex == 0 ? "1" : SiteAreaGridView.PageIndex.ToString());
        lnkbtnNext.CommandArgument 
= (SiteAreaGridView.PageCount == 1 ? SiteAreaGridView.PageCount.ToString() : (SiteAreaGridView.PageIndex + 2).ToString());
        SetLinkButtonEnabled();
        
this.txtJumpPage.Text = "";
    }

    
#endregion

 在PAGE_LOAD中加入

this.txtJumpPage.Attributes.Add("style", "ime-mode:disabled");//屏蔽输入跳转页码的文本框的输入法

步骤3: 写JS文件,检查输入限制和在输入回车键后自动跳转页面

     // 限制用户只能输入数字
    function  InputLimit()
    
{
        
//如果输入的是“回车键”,则直接跳转
        if(event.keyCode==13
        

      
         document.getElementById(
"lnkbtnJumpPage").click(); 
    
         }
 
     
if(event.keyCode>=48&&event.keyCode<=57
     

      
return true;
     }
 
     
return false;
   }

   
// 检查在输入框的页码
function  checkGoPage()

  
var currentPage=document.getElementById("currentPage").value;
  
var value=Trim(document.getElementById("txtJumpPage").value);
     
var re = /^0*(0|1)$/;
  
if(value=="")
  
{
   
// alert("请输入要跳转的页数!");
    document.getElementById("txtJumpPage").value="";
    document.getElementById(
"txtJumpPage").focus();
    
return false;
  }

  
else
   
if(currentPage==1&&re.exec(value)!=null)
    
{
       document.getElementById(
"txtJumpPage").value="";
    document.getElementById(
"txtJumpPage").focus();
    
return false;
    }

    
else if(currentPage!=1&&re.exec(value)!=null)
    
{
       document.getElementById(
"txtJumpPage").value="1";
      
return true;
    }

 
}

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值