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

实现ASP.NET Repeater控件自定义分页功能教程 Repeater控件是.NET Web Forms开发中用于显示数据列表的一种控件。它提供了一种简单的方式来重复输出数据,非常适合于不需要复杂界面的列表展示。Repeater控件的灵活性体现在其模板系统,开发者可以自定义模板以控制数据的显示方式。分页是信息系统中不可或缺的一部分,特别是在处理大量数据时。分页逻辑的设计直接影响到用户体验以及系统性能。通过自定义分页逻辑,开发者不仅可以实现标准的分页功能,还可以根据特定需求进行优化。本章将详细介绍如何设计和实现自定义分页逻辑。 阅读详情

在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;
    }

 
}

 

 
Asp.Net自定义控件之翻页无刷新GridView 一个翻页无刷新继承自GridView的Asp.Net自定义控件,兼容IE和火狐,使用Ajax+JSON实现翻页无刷新。 立即下载

相关推荐

C# ASP.net自定义分页

C# ASP.net自定义分页

asp.net DataGrid GridView 表格之分页显示与翻页功能及自定义翻页页码样式

二、实现翻页功能 如何点击页码实现翻页呢? 在属性框中事件选择设置PageIndexChanging(在Grid View的当前索引页正在更改事触发)这一事件 后台代码如下 /// <summary> /// 翻页操作 /// 在GridView当前索引正在更改时触发 /// </summary> ///...

xuanmu 1897

ASP.NET分页功能的实现

使用AspNetPager控件实现ASP.NET分页功能 “控件+源代码”!!

.Net通用分页类(存储过程分页版,完全自定义显示样式,包括中英显示)

usingSystem; usingSystem.Collections.Generic; usingSystem.Text; /**////<summary> ///.Net通用分页类(存储过程分页版,完全自定义显示样式,包括中英显示) ///作者:启程www.letwego.cn ///可用于任意用途,请保留作者信息,谢谢! ///</su...

weixin_34292924的博客 128

.net分页控件,.net自定义分页控件

自己写的一个很漂亮且强大的分页控件,简洁漂亮,非常不错!供大家分享

Asp.Net实现增删改以及分页例子一

开发环境:Microsoft Visual Studio .NET 2003 数据库:SQL Server 2000 博文链接:https://fuhao9611.iteye.com/blog/74998

ASP.NET 数据列表控件的分页总结(一)-----自定义方法分页和PageDataSource类分页(转)...

在Asp.net中,提供了三个功能强大的列表控件:GridView、 DataList和Repeater控件,但其中只有GridView控件提供分页功能。虽然DataGrid提供了分页功能,不过看上去功能有限,但是 我们可以通过GridView的一些属性来获取状态以及增加首页、尾页功能按钮。如果在速度效率不是很讲究的情况下,由DataGrid自己管理分页还是 不错的,付出的代价就是要把整...

anjiedun1870的博客 576

基于高精度三维机器视觉的新能源汽车锂电池表面缺陷检测

在机器视觉行业迅速发展的背景下,市场上提供了功能强大且种类齐全的3D相机系列,可以满足锂电池从电芯到模组各个工艺和工位的3D检测需求。

Hinyeung_Limited的博客 1132

ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页

             ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的.在最进的一个项目中因为一个管理页

yzx110的专栏 1万+

零基础学simulink仿真建模--基于Simulink进行农业机械用开关磁阻电机的仿真建模

特点结构简单:无电刷、换向器等易损件,维护成本低。坚固耐用:适合恶劣的工作环境,如农业机械作业现场。宽调速范围:通过适当的控制策略可以实现较宽的速度调节范围。挑战非线性特性:SRM的电磁特性和转矩特性具有高度非线性。复杂性:涉及电气、机械动力学以及控制系统的设计与集成。实时性要求:需要快速响应以适应不断变化的操作条件。多变量优化:包括电流控制、速度控制等多个方面需综合考虑。使用Simscape Electrical库来构建一个开关磁阻电机模型。

amy_mhd的博客 909

避开这5个坑!ADNI数据库下载实操经验分享(含断点续传方案)

本文分享了ADNI数据库下载的5个常见陷阱及解决方案,包括高级搜索策略优化、断点续传技巧和数据完整性验证。特别针对大文件下载中断问题,提供了wget断点续传和分卷下载的实操方法,帮助研究者高效获取神经影像数据,避免重复下载和时间浪费。

git9versioner的博客 373
上一篇: JSP内置对象及其作用
下一篇: SQL语句学习
kevin_long
博客等级 码龄20年 30粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值