asp.net自定义分页控件示例
asp.net自定义分页控件示例
发布时间:2016-12-29 来源:查字典编辑
摘要:一、.ascx页面复制代码代码如下:記錄總數:總頁數:當前頁:轉到第頁二、.ascx.cs文件复制代码代码如下:usingSystem;us...

一、.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" 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);

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类