asp.net自定义分页控件示例
一、.ascx页面
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Pagination.ascx.cs" Inherits="IOCS.WEB.UserControl.Pagination" %>
<link href="../Content/Css/Pager.css" rel="stylesheet" type="text/css" />
<div id="tbPage" class="pager" runat="server" >
記錄總數:<asp:Label ID="LRecords" runat="server"></asp:Label>
總頁數:<asp:Label ID="LPages" runat="server"></asp:Label>
當前頁:<asp:Label ID="LPage" runat="server"></asp:Label>
<asp:LinkButton ID="LinkFirst" runat="server" CommandArgument="first" nClick="PagerButtonClick"
Text="首頁"></asp:LinkButton>
<asp:LinkButton ID="LinkPrevious" runat="server" CommandArgument="prev" nClick="PagerButtonClick"
Text="上一頁"></asp:LinkButton>
<asp:LinkButton ID="LinkNext" runat="server" CommandArgument="next" nClick="PagerButtonClick"
Text="下一頁"></asp:LinkButton>
<asp:LinkButton ID="LinkLast" runat="server" CommandArgument="last" nClick="PagerButtonClick"
Text="末頁"></asp:LinkButton>
轉到第<asp:TextBox ID="txtpage" CssClass="piut" runat="server" MaxLength="5" AutoPostBack="True" nTextChanged="txtpage_TextChanged"></asp:TextBox>頁
二、.ascx.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace IOCS.WEB.UserControl
{
public partial class Pagination : System.Web.UI.UserControl
{
public event EventHandler PageButtonClick;
public bool FirstPost = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
// 只輸入數字
txtpage.Attributes.Add("onclick",
@"if(!((event.keyCode>=48&&event.keyCode<=57)
||(event.keyCode>=96&&event.keyCode<=105)
||(event.keyCode==8)))event.returnValue=false;"
);
}
GridView _gv;
/// <summary>
/// 需要分頁的GridView
/// </summary>
public GridView TargetControlID
{
set
{
_gv = value;
}
get
{
return _gv;
}
}
protected void PagerButtonClick(object sender, EventArgs e)
{
//獲得linkebutton的參數值
string arg = ((LinkButton)sender).CommandArgument;
switch (arg)
{
case ("next"):
{
if (_gv.PageIndex < _gv.PageCount - 1)
{
_gv.PageIndex=_gv.PageIndex+1;
}
break;
}
case ("prev"):
{
if (_gv.PageIndex > 0)
{
_gv.PageIndex--;
}
break;
}
case ("first"):
{
_gv.PageIndex = 0;
break;
}
case ("last"):
{
if (_gv.PageCount > 0)
{
_gv.PageIndex = _gv.PageCount - 1;
}
break;
}
default:
{
_gv.PageIndex = Convert.ToInt32(arg);
break;
}
}
PageButtonClick(sender, e);
}
public void SetPageButton()
{
if (_gv.PageIndex == 0)
{
LinkFirst.Enabled = false;
LinkPrevious.Enabled = false;
LinkFirst.Style["color"] = "gray";
LinkPrevious.Style["color"] = "gray";
object s = LinkFirst.Style.Keys;
if (_gv.PageCount > 1)
{
LinkNext.Enabled = true;
LinkLast.Enabled = true;
txtpage.Enabled = true;
txtpage.Enabled = true;
LinkNext.Style["color"] = "#000";
LinkLast.Style["color"] = "#000";
txtpage.Style["readonly"] = "false";
}
else
{
LinkNext.Enabled = false;
LinkLast.Enabled = false;
txtpage.Enabled = false;
LinkNext.Style["color"] = "gray";
LinkLast.Style["color"] = "gray";
txtpage.Style["readonly"] = "true";//background-color
}
}
else if (_gv.PageIndex == _gv.PageCount - 1)
{
LinkFirst.Enabled = true;
LinkPrevious.Enabled = true;
LinkNext.Enabled = false;
LinkLast.Enabled = false;
LinkFirst.Style["color"] = "#000";
LinkPrevious.Style["color"] = "#000";
LinkNext.Style["color"] = "gray";
LinkLast.Style["color"] = "gray";
}
else
{
LinkFirst.Enabled = true;
LinkPrevious.Enabled = true;
LinkNext.Enabled = true;
LinkLast.Enabled = true;
LinkFirst.Style["color"] = "#000";
LinkPrevious.Style["color"] = "#000";
LinkNext.Style["color"] = "#000";
LinkLast.Style["color"] = "#000";
}
}
/// <summary>
/// 設定頁面信息
/// </summary>
/// <param name="dsCount">DataSet的紀錄總數</param>
public void SetPageRecord(int dsCount)
{
LRecords.Text = dsCount.ToString();
int mod= dsCount%_gv.PageSize;
LPages.Text = (mod == 0 ? dsCount / _gv.PageSize : dsCount / _gv.PageSize + 1).ToString();
LPage.Text = (_gv.PageIndex + 1).ToString();
tbPage.Visible = true;
SetPageButton();
}
protected void txtpage_TextChanged(object sender, EventArgs e)
{
if (txtpage.Text != "")
{
try
{
int index = int.Parse(txtpage.Text.Trim());
if (index <= _gv.PageCount && index >= 1)
{
_gv.PageIndex = index - 1;
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "<script. language='javascript'>alert('對不起,頁數超過索引范圍!');</script>");
}
}
catch
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "<script. language='javascript'>alert('對不起,只能輸入數字!');</script>");
}
}
PageButtonClick(sender, e);
}
}
}
相关文章
- 在web开发中,常常需要显示一些数据,而为了方便排版及浏览,我们只需要显示所有记录中的一部分。一般情况下,我们采用分页来实现这个需求...2021-09-22
- 这篇文章主要介绍了asp.net自定义分页控件示例,大家参考使用吧...2021-09-22
- 这篇文章主要为大家详细介绍了.NET分页控件的制作方法和实现原理,感兴趣的小伙伴们可以参考一下...2021-09-22
- AspNetPager分页控件想必大家并不陌生吧,在本文将为大家详细介绍下此控件的css样式定义,感兴趣的朋友可以参考下...2021-09-22
- 这篇文章主要为大家详细介绍了asp.net webform自定义分页控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 本文给大家分享的是一款超好用轻量级MVC分页控件--JPager.Net,小编自己也在使用,非常的不错,推荐给大家。...2021-09-22
AspNetPager分页控件UrlRewritePattern参数设置的重写代码
AspNetPager分页控件UrlRewritePattern参数设置的重写代码,需要的朋友可以参考一下...2021-09-22- 这篇文章主要为大家详细介绍了asp.net web页面自定义分页控件使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 这篇文章主要教大家学习制作MVC4分页控件,自己动手编写HtmlHelper-Pager分页控件,感兴趣的小伙伴们可以参考一下...2021-09-22
- 这篇文章主要教大家学习制作MVC4分页控件,自己动手编写HtmlHelper-Pager分页控件,感兴趣的小伙伴们可以参考一下...2021-09-22
- 本篇文章,小编将为大家介绍,关于asp.net 自定义分页控件,有需要的朋友可以参考一下...2021-09-22
- 本文主要对AspNetPager.dll这个分页控件进行介绍,它主要用于asp.net webform网站。文章结尾附上实例下载,有需要的朋友可以看下...2021-09-22
- 本篇文章主要对asp.net创建事务的方法进行实例介绍,具有很好的参考价值,需要的朋友一起来看下吧...2021-09-22
- 这篇文章主要介绍了winform分页控件,文中附源码下载地址,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25