在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中实现自定义分页功能,包括前端按钮定义、后端分页逻辑处理及JavaScript输入限制等内容。

460

被折叠的 条评论
为什么被折叠?



