?? pagelister.cs
字號:
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Drawing.Design;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Yinde.Cnc.PageLister
{
/// <summary>
/// 數據進行分頁的的服務器控件。
/// </summary>
[
DefaultProperty("PageSize"),
DefaultEvent("PageIndexChanged"),
Description("用于ASP.Net Web應用程序的分頁控件"),
ToolboxBitmap(typeof(PageLister),"PageLister.bmp")
]
public class PageLister:WebControl,IPostBackEventHandler
{
#region 頁碼屬性
/// <summary>
/// 獲取或設置當前顯示頁的索引。
/// </summary>
[
ReadOnly(true),
Browsable(false),
Description("當前顯示頁的索引。"),
DefaultValue(1),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
public int PageIndex
{
get
{
object obj=ViewState["PageIndex"];
return (obj==null)?1:(int)obj;
}
set
{
int pageIndex=value;
if(pageIndex<1)
pageIndex=1;
else if(pageIndex>PageCount)
pageIndex=PageCount;
ViewState["PageIndex"]=pageIndex;
}
}
/// <summary>
/// 獲取或設置要單頁上顯示的項數。
/// </summary>
[
Browsable(true),
Description("每頁顯示的記錄數。"),
Category("分頁"),
DefaultValue(10)
]
public int PageSize
{
get
{
object obj=ViewState["PageSize"];
return (obj==null)?10:(int)obj;
}
set
{
ViewState["PageSize"]=value;
}
}
/// <summary>
/// 獲取或設置需要分頁的所有記錄的總數。
/// </summary>
[
Browsable(false),
Description("要分頁的所有記錄的總數。"),
DefaultValue(225)
]
public int RecordCount
{
get
{
object obj=ViewState["Recordcount"];
return (obj==null)?225:(int)obj;
}
set
{
ViewState["Recordcount"]=value;
}
}
/// <summary>
/// 獲取在本頁顯示的記錄開始的索引。
/// </summary>
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
private int RecordStartIndex
{
get
{
return RecordCount==0?0:(PageIndex-1)*PageSize+1;
}
}
/// <summary>
/// 獲取在本頁顯示的記錄結束的索引。
/// </summary>
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
private int RecordEndIndex
{
get
{
return (PageIndex*PageSize>RecordCount)?RecordCount:PageIndex*PageSize;
}
}
/// <summary>
/// 獲取所有要分頁的總頁數。
/// </summary>
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
private int PageCount
{
get
{
return (int)Math.Ceiling((double)RecordCount/(double)PageSize);
}
}
/// <summary>
/// 獲得當前頁碼組的索引
/// </summary>
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
private int GroupIndex
{
get
{
return (int)Math.Ceiling((double)PageIndex/(double)NumericButtonCount);
}
}
/// <summary>
/// 獲得頁碼組的總數
/// </summary>
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
]
private int GroupCount
{
get
{
return (int)Math.Ceiling((double)PageCount/(double)NumericButtonCount);
}
}
#endregion
#region 樣式屬性
/// <summary>
/// 獲取或設置一個值,該值指示是否在頁導航元素中顯示第一頁和最后一頁按鈕。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("是否在頁導航元素中顯示第一頁和最后一頁按鈕。"),
DefaultValue(true)
]
public bool ShowFirstLast
{
get
{
object obj=ViewState["ShowFirstLast"];
return (obj==null)?true:(bool)obj;
}
set
{
ViewState["ShowFirstLast"]=value;
}
}
/// <summary>
/// 獲取或設置一個值,該值指示是否在頁導航元素中顯示上一頁和下一頁按鈕。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("是否在頁導航元素中顯示上一頁和下一頁按鈕。"),
DefaultValue(true)
]
public bool ShowPrevNext
{
get
{
object obj=ViewState["ShowPreviousNext"];
return (obj==null)?true:(bool)obj;
}
set
{
ViewState["ShowPreviousNext"]=value;
}
}
/// <summary>
/// 獲取或設置一個值,該值指示是否在頁導航元素中顯示頁索引數值按鈕。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("是否在頁導航元素中顯示數值按鈕。"),
DefaultValue(true)
]
public bool ShowPageIndex
{
get
{
object obj=ViewState["ShowPageIndex"];
return (obj==null)?true:(bool)obj;
}
set
{
ViewState["ShowPageIndex"]=value;
}
}
/// <summary>
/// 獲取或設置一個值,該值指定是否顯示已禁用的按鈕。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("是否顯示已禁用的按鈕。"),
DefaultValue(true)
]
public bool ShowDisabledButton
{
get
{
object obj=ViewState["ShowDisabledButton"];
return (obj==null)?true:(bool)obj;
}
set
{
ViewState["ShowDisabledButton"]=value;
}
}
/// <summary>
/// 獲取或設置為第一頁按鈕顯示的文本。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("第一頁按鈕上顯示的文本。"),
DefaultValue("|<<")
]
public string FirstPageText
{
get
{
object obj=ViewState["FirstPageText"];
return (obj==null)?"|<<":(string)obj;
}
set
{
ViewState["FirstPageText"]=value;
}
}
/// <summary>
/// 獲取或設置為上一頁按鈕顯示的文本。
/// </summary>
[
Browsable(true),
Description("上一頁按鈕上顯示的文本。"),
Category("樣式"),
DefaultValue("<")
]
public string PrevPageText
{
get
{
object obj=ViewState["PrevPageText"];
return (obj==null)?"<":(string)obj;
}
set
{
ViewState["PrevPageText"]=value;
}
}
/// <summary>
/// 獲取或設置為下一頁按鈕顯示的文本。
/// </summary>
[
Browsable(true),
Description("下一頁按鈕上顯示的文本。"),
Category("樣式"),
DefaultValue(">")
]
public string NextPageText
{
get
{
object obj=ViewState["NextPageText"];
return (obj==null)?">":(string)obj;
}
set{ViewState["NextPageText"]=value;}
}
/// <summary>
/// 獲取或設置為最后一頁按鈕顯示的文本。
/// </summary>
[
Browsable(true),
Description("最后一頁按鈕上顯示的文本。"),
Category("樣式"),
DefaultValue(">>|")
]
public string LastPageText
{
get
{
object obj=ViewState["LastPageText"];
return (obj==null)?">>|":(string)obj;
}
set
{
ViewState["LastPageText"]=value;
}
}
/// <summary>
/// 獲取或設置頁導航元素中同時顯示的數值按鈕的數目。
/// </summary>
[
Browsable(true),
Category("樣式"),
Description("要顯示的頁索引數值按鈕的數目。"),
DefaultValue(10)
]
public int NumericButtonCount
{
get
{
object obj=ViewState["NumericButtonCount"];
return (obj==null)?10:(int)obj;
}
set
{
ViewState["NumericButtonCount"]=value;
}
}
/// <summary>
/// 獲取或設置頁索引數值導航按鈕上文字的顯示格式。
/// </summary>
[
Browsable(true),
DefaultValue(""),
Category("樣式"),
Description("頁索引數值按鈕上文字的顯示格式。")
]
public string NumericButtonTextFormatString
{
get
{
object obj=ViewState["NumericButtonTextFormatString"];
return (obj==null)?String.Empty:(string)obj;
}
set
{
ViewState["NumericButtonTextFormatString"]=value;
}
}
/// <summary>
/// 獲取或設置分頁導航按鈕之間的間距。
/// </summary>
[
Browsable(true),
Category("樣式"),
DefaultValue(typeof(Unit),"5px"),
Description("分頁導航按鈕之間的間距。")
]
public Unit ButtonSpacing
{
get
{
object obj=ViewState["ButtonSpacing"];
return (obj==null)?Unit.Pixel(5):(Unit.Parse(obj.ToString()));
}
set
{
ViewState["ButtonSpacing"]=value;
}
}
/// <summary>
/// 獲取或設置導航按鈕的CSS樣式文本。
/// </summary>
[
Browsable(true),
Category("樣式"),
DefaultValue(""),
Description("應用于導航按鈕的CSS樣式文本。")
]
public string PageButtonCssClass
{
get
{
object obj=ViewState["PageButtonCssClass"];
return (obj==null)?CssClass:(string)obj;
}
set
{
ViewState["PageButtonCssClass"]=value;
}
}
/// <summary>
/// 獲取或設置當前頁碼導航按鈕的CSS樣式文本。
/// </summary>
[
Browsable(true),
Category("樣式"),
DefaultValue(""),
Description("應用于當前頁碼導航按鈕的CSS樣式文本。")
]
public string CurrentPageButtonCssClass
{
get
{
object obj=ViewState["CurrentPageButtonCssClass"];
return (obj==null)?CssClass:(string)obj;
}
set
{
ViewState["CurrentPageButtonCssClass"]=value;
}
}
/// <summary>
/// 獲取或設置不可用導航按鈕的CSS樣式文本。
/// </summary>
[
Browsable(true),
Category("樣式"),
DefaultValue(""),
Description("應用于不可用導航按鈕的CSS樣式文本。")
]
public string DisabledPageButtonCssClass
{
get
{
object obj=ViewState["DisabledPageButtonCssClass"];
return (obj==null)?CssClass:(string)obj;
}
set
{
ViewState["DisabledPageButtonCssClass"]=value;
}
}
#endregion
#region 擴展信息屬性
/// <summary>
/// 獲取或設置顯示擴展信息區的方式。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
Description("顯示擴展信息的方式及位置。"),
DefaultValue(ShowExpendInfo.Never)
]
public ShowExpendInfo ShowExpendInfo
{
get
{
object obj=ViewState["ShowExpendInfo"];
return (obj==null)?ShowExpendInfo.Never:(ShowExpendInfo)obj;
}
set{ViewState["ShowExpendInfo"]=value;}
}
/// <summary>
/// 獲取或設置用戶自定義信息區文本的對齊方式。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -