You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1689 lines
51 KiB

using System;
using System.ComponentModel;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace OT.Controls.DataPager
{
public partial class Pager
{
#region Private fields
private enum NavigationButton : byte
{
First, Prev, Next, Last
}
//private string cssClassName;
private string inputPageIndex;
private string currentUrl;
private string queryString;
private Pager cloneFrom;
private static readonly object EventPageChanging = new object();
private static readonly object EventPageChanged = new object();
//bool pageChangeEventHandled = false;
//AspNetPager Version number, does not use reflection for perfomance reason
const string VersionNumber = "7.3.2";
#endregion
#region Navigation Buttons
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("導航按鈕提示信息格式化。")]
public bool ShowNavigationToolTip
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowNavigationToolTip;
object obj = ViewState["ShowNvToolTip"];
return (obj == null) ? false : (bool)obj;
}
set
{
ViewState["ShowNvToolTip"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("頁碼按鈕提示信息格式化。")]
public string NavigationToolTipTextFormatString
{
get
{
if (null != cloneFrom)
return cloneFrom.NavigationToolTipTextFormatString;
object obj = ViewState["NvToolTipFormatString"];
if (obj == null)
{
if (ShowNavigationToolTip)
return "ShowNavigationToolTip:{0}";
return null;
}
return (string)obj;
}
set
{
string tip = value;
if (tip.Trim().Length < 1 && tip.IndexOf("{0}") < 0)
tip = "{0}";
ViewState["NvToolTipFormatString"] = tip;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("頁碼按鈕顯示格式化。")]
public string NumericButtonTextFormatString
{
get
{
if (null != cloneFrom)
return cloneFrom.NumericButtonTextFormatString;
object obj = ViewState["NumericButtonTextFormatString"];
return (obj == null) ? String.Empty : (string)obj;
}
set
{
ViewState["NumericButtonTextFormatString"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("當前頁碼按鈕顯示格式化。")]
public string CurrentPageButtonTextFormatString
{
get
{
if (null != cloneFrom)
return cloneFrom.CurrentPageButtonTextFormatString;
object obj = ViewState["CurrentPageButtonTextFormatString"];
return (obj == null) ? NumericButtonTextFormatString : (string)obj;
}
set
{
ViewState["CurrentPageButtonTextFormatString"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PagingButtonType.Image),
Description("頁碼按鈕顯示類型。預設:Text")]
public PagingButtonType PagingButtonType
{
get
{
if (null != cloneFrom)
return cloneFrom.PagingButtonType;
object obj = ViewState["PagingButtonType"];
return (obj == null) ? PagingButtonType.Image : (PagingButtonType)obj;
}
set
{
ViewState["PagingButtonType"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PagingButtonType.Text),
Description("頁碼按鈕顯示類型。預設:Text")]
public PagingButtonType NumericButtonType
{
get
{
if (null != cloneFrom)
return cloneFrom.NumericButtonType;
object obj = ViewState["NumericButtonType"];
return (obj == null) ? PagingButtonType.Text : (PagingButtonType)obj;
}
set
{
ViewState["NumericButtonType"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PagingButtonLayoutType.None),
Description("頁碼按鈕顯示樣式類型。預設:None")]
public PagingButtonLayoutType PagingButtonLayoutType
{
get
{
if (null != cloneFrom)
return cloneFrom.PagingButtonLayoutType;
object obj = ViewState["PagingButtonLayoutType"];
return (obj == null) ? PagingButtonLayoutType.None : (PagingButtonLayoutType)obj;
}
set { ViewState["PagingButtonLayoutType"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(NavigationButtonPosition.BothSides),
Description("當前頁碼按鈕定位方式。預設:BothSides")]
public PagingButtonPosition CurrentPageButtonPosition
{
get
{
if (null != cloneFrom)
return cloneFrom.CurrentPageButtonPosition;
object obj = ViewState["CurrentPageButtonPosition"];
return (obj == null) ? PagingButtonPosition.Fixed : (PagingButtonPosition)obj;
}
set { ViewState["CurrentPageButtonPosition"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(NavigationButtonPosition.BothSides),
Description("導航按鈕定位方式。預設:BothSides")]
public NavigationButtonPosition NavigationButtonsPosition
{
get
{
if (null != cloneFrom)
return cloneFrom.NavigationButtonsPosition;
object obj = ViewState["NavigationButtonsPosition"];
return (obj == null) ? NavigationButtonPosition.BothSides : (NavigationButtonPosition)obj;
}
set { ViewState["NavigationButtonsPosition"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PagingButtonType.Button),
Description("導航按鈕類型。預設:Button")]
public PagingButtonType NavigationButtonType
{
get
{
if (null != cloneFrom)
return cloneFrom.NavigationButtonType;
object obj = ViewState["NavigationButtonType"];
return (obj == null) ? PagingButtonType.Button : (PagingButtonType)obj;
}
set
{
ViewState["NavigationButtonType"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
TypeConverter(typeof(TargetConverter)),
Description("UrlPagingTarget。")]
public string UrlPagingTarget
{
get
{
if (null != cloneFrom)
return cloneFrom.UrlPagingTarget;
return (string)ViewState["UrlPagingTarget"];
}
set
{
ViewState["UrlPagingTarget"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PagingButtonType.Text),
Description("More按鈕的顯示類型。預設:Text")]
public PagingButtonType MoreButtonType
{
get
{
if (null != cloneFrom)
return cloneFrom.MoreButtonType;
object obj = ViewState["MoreButtonType"];
return (obj == null) ? PagingButtonType.Text : (PagingButtonType)obj;
}
set
{
ViewState["MoreButtonType"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(typeof(Unit), "5px"),
Description("頁碼的間距。預設:5px")]
public Unit PagingButtonSpacing
{
get
{
if (null != cloneFrom)
return cloneFrom.PagingButtonSpacing;
object obj = ViewState["PagingButtonSpacing"];
return (obj == null) ? Unit.Pixel(5) : (Unit.Parse(obj.ToString()));
}
set
{
ViewState["PagingButtonSpacing"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否顯示第一頁和最後一頁控件")]
public bool ShowFirstLast
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowFirstLast;
object obj = ViewState["ShowFirstLast"];
return (obj == null) ? true : (bool)obj;
}
set { ViewState["ShowFirstLast"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否顯示上一頁和下一頁控件")]
public bool ShowPrevNext
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowPrevNext;
object obj = ViewState["ShowPrevNext"];
return (obj == null) ? true : (bool)obj;
}
set { ViewState["ShowPrevNext"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否顯示頁碼")]
public bool ShowPageIndex
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowPageIndex;
object obj = ViewState["ShowPageIndex"];
return (obj == null) ? true : (bool)obj;
}
set { ViewState["ShowPageIndex"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否顯示More按鈕")]
public bool ShowMoreButtons
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowMoreButtons;
object obj = ViewState["ShowMoreButtons"];
return (obj == null) ? true : (bool)obj;
}
set { ViewState["ShowMoreButtons"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue("&lt;&lt;"),
Description("第一頁顯示文字,預設&lt;&lt;")]
public string FirstPageText
{
get
{
if (null != cloneFrom)
return cloneFrom.FirstPageText;
object obj = ViewState["FirstPageText"];
return (obj == null) ? "&lt;&lt;" : (string)obj;
}
set { ViewState["FirstPageText"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue("&lt;"),
Description("上一頁顯示文字,預設&lt;")]
public string PrevPageText
{
get
{
if (null != cloneFrom)
return cloneFrom.PrevPageText;
object obj = ViewState["PrevPageText"];
return (obj == null) ? "&lt;" : (string)obj;
}
set { ViewState["PrevPageText"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue("&gt;"),
Description("下一頁顯示文字,預設&gt;")]
public string NextPageText
{
get
{
if (null != cloneFrom)
return cloneFrom.NextPageText;
object obj = ViewState["NextPageText"];
return (obj == null) ? "&gt;" : (string)obj;
}
set { ViewState["NextPageText"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue("&gt;&gt;"),
Description("最後一頁顯示文字,預設&gt;&gt;")]
public string LastPageText
{
get
{
if (null != cloneFrom)
return cloneFrom.LastPageText;
object obj = ViewState["LastPageText"];
return (obj == null) ? "&gt;&gt;" : (string)obj;
}
set { ViewState["LastPageText"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(10),
Description("分頁長度,預設10")]
public int NumericButtonCount
{
get
{
if (null != cloneFrom)
return cloneFrom.NumericButtonCount;
object obj = ViewState["NumericButtonCount"];
return (obj == null) ? 10 : (int)obj;
}
set { ViewState["NumericButtonCount"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否顯示禁用的按鈕")]
public bool ShowDisabledButtons
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowDisabledButtons;
object obj = ViewState["ShowDisabledButtons"];
return (obj == null) ? true : (bool)obj;
}
set
{
ViewState["ShowDisabledButtons"] = value;
}
}
#endregion
#region Image Navigation Buttons
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("圖片路徑.")]
public string ImagePath
{
get
{
if (null != cloneFrom)
return cloneFrom.ImagePath;
string imgPath = (string)ViewState["ImagePath"];
if (imgPath != null)
imgPath = ResolveUrl(imgPath);
return imgPath;
}
set
{
string imgPath = value.Trim().Replace("\\", "/");
ViewState["ImagePath"] = (imgPath.EndsWith("/")) ? imgPath : imgPath + "/";
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(".gif"),
Description("圖片後綴名稱.")]
public string ButtonImageExtension
{
get
{
if (null != cloneFrom)
return cloneFrom.ButtonImageExtension;
object obj = ViewState["ButtonImageExtension"];
return (obj == null) ? ".gif" : (string)obj;
}
set
{
string ext = value.Trim();
ViewState["ButtonImageExtension"] = (ext.StartsWith(".")) ? ext : ("." + ext);
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("按鈕圖片後綴名稱.")]
public string ButtonImageNameExtension
{
get
{
if (null != cloneFrom)
return cloneFrom.ButtonImageNameExtension;
object obj = ViewState["ButtonImageNameExtension"];
return (obj == null) ? null : (string)obj;
}
set
{
ViewState["ButtonImageNameExtension"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("Cpi圖片後綴名稱.")]
public string CpiButtonImageNameExtension
{
get
{
if (null != cloneFrom)
return cloneFrom.CpiButtonImageNameExtension;
object obj = ViewState["CpiButtonImageNameExtension"];
return (obj == null) ? ButtonImageNameExtension : (string)obj;
}
set
{
ViewState["CpiButtonImageNameExtension"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("隱藏圖片後綴名稱.")]
public string DisabledButtonImageNameExtension
{
get
{
if (null != cloneFrom)
return cloneFrom.DisabledButtonImageNameExtension;
object obj = ViewState["DisabledButtonImageNameExtension"];
return (obj == null) ? ButtonImageNameExtension : (string)obj;
}
set
{
ViewState["DisabledButtonImageNameExtension"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(ImageAlign.NotSet),
Description("圖片對齊方式. 預設NotSet")]
public ImageAlign ButtonImageAlign
{
get
{
if (null != cloneFrom)
return cloneFrom.ButtonImageAlign;
object obj = ViewState["ButtonImageAlign"];
return (obj == null) ? ImageAlign.NotSet : (ImageAlign)obj;
}
set
{
if (value != ImageAlign.Right && value != ImageAlign.Left)
ViewState["ButtonImageAlign"] = value;
}
}
#endregion
#region Paging
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("是否啟用Url分頁. 預設false")]
public bool UrlPaging
{
get
{
if (null != cloneFrom)
return cloneFrom.UrlPaging;
object obj = ViewState["UrlPaging"];
return (null == obj) ? false : (bool)obj;
}
set
{
ViewState["UrlPaging"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue("page"),
Description("Url分頁當前頁碼參數名稱. 預設false")]
public string UrlPageIndexName
{
get
{
if (null != cloneFrom)
return cloneFrom.UrlPageIndexName;
object obj = ViewState["UrlPageIndexName"];
return (null == obj) ? "page" : (string)obj;
}
set { ViewState["UrlPageIndexName"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("Url分頁大小參數名稱. 預設false")]
public string UrlPageSizeName
{
get
{
if (null != cloneFrom)
return cloneFrom.UrlPageSizeName;
return (string)ViewState["UrlPageSizeName"];
}
set { ViewState["UrlPageSizeName"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("頁碼倒序排列. 預設false")]
public bool ReverseUrlPageIndex
{
get
{
if (null != cloneFrom)
return cloneFrom.ReverseUrlPageIndex;
object obj = ViewState["ReverseUrlPageIndex"];
return (null == obj) ? false : (bool)obj;
}
set { ViewState["ReverseUrlPageIndex"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(0),
Description("當前頁碼. 預設1")]
public int CurrentPageIndex
{
get
{
if (null != cloneFrom)
return cloneFrom.CurrentPageIndex;
object cpage = ViewState["CurrentPageIndex"];
int pindex = (cpage == null) ? 1 : (int)cpage;
if (pindex > PageCount && PageCount > 0)
return PageCount;
if (pindex < 1)
return 1;
return pindex;
}
set
{
int cpage = value;
if (cpage < 1)
cpage = 1;
//Deleted by Ethan,因為初始化的時候Gridview還沒有資料,無法恢復記錄的頁碼 Start.
//else if (cpage > PageCount)
// cpage = PageCount;
//Deleted by Ethan,因為初始化的時候Gridview還沒有資料,無法恢復記錄的頁碼 End.
ViewState["CurrentPageIndex"] = cpage;
//if(!pageChangeEventHandled)
//{
// OnPageChanging(new PageChangingEventArgs(cpage));
//}
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(0),
Description("資料總筆數. 預設0")]
public int RecordCount
{
get
{
if (null != cloneFrom)
return cloneFrom.RecordCount;
object obj = ViewState["Recordcount"];
return (obj == null) ? 0 : (int)obj;
}
set { ViewState["Recordcount"] = value; }
}
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int PagesRemain
{
get
{
return PageCount - CurrentPageIndex;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(10),
Description("分頁資料筆數. 預設10")]
public int PageSize
{
get
{
if (!string.IsNullOrEmpty(UrlPageSizeName) && !DesignMode)
{
int pageSize;
if (int.TryParse(Page.Request.QueryString[UrlPageSizeName], out pageSize))
{
if (pageSize > 0)
return pageSize;
}
}
if (null != cloneFrom)
return cloneFrom.PageSize;
object obj = ViewState["PageSize"];
return (obj == null) ? 10 : (int)obj;
}
set
{
ViewState["PageSize"] = value;
}
}
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int RecordsRemain
{
get
{
if (CurrentPageIndex < PageCount)
return RecordCount - (CurrentPageIndex * PageSize);
return 0;
}
}
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int StartRecordIndex
{
get
{
//if (FillLastPage && RecordCount > PageSize && CurrentPageIndex == PageCount)
// return RecordCount - PageSize;
return (CurrentPageIndex - 1) * PageSize + 1;
}
}
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int EndRecordIndex
{
get
{
return RecordCount - RecordsRemain;
}
}
[Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public int PageCount
{
get
{
if (RecordCount == 0)
return 1;
return (int)Math.Ceiling((double)RecordCount / (double)PageSize);
}
}
#endregion
#region
[Category("Behavior"),
Browsable(true),
DefaultValue(ShowPageMax.Always),
Description("是否顯示跳轉頁面碼控件. 預設Never")]
public ShowPageMax ShowPageMax
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowPageMax;
object obj = ViewState["ShowPageMax"];
return (obj == null) ? ShowPageMax.Always : (ShowPageMax)obj;
}
set { ViewState["ShowPageMax"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PageMaxType.TextBox),
Description("跳轉頁面碼控件類型")]
public PageMaxType PageMaxType
{
get
{
if (null != cloneFrom)
return cloneFrom.PageMaxType;
object obj = ViewState["PageIndexBoxType"];
return (obj == null) ? PageMaxType.TextBox : (PageMaxType)obj;
}
set
{
ViewState["PageIndexBoxType"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件CssClass")]
public string PageMaxClass
{
get
{
if (null != cloneFrom)
return cloneFrom.PageMaxClass;
object obj = ViewState["PageMaxClass"];
return (obj == null) ? null : (string)obj;
//return (obj == null) ? "right" : (string)obj;
}
set
{
if (value.Trim().Length > 0)
ViewState["PageMaxClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件Style")]
public string PageMaxStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.PageMaxStyle;
object obj = ViewState["PageMaxStyle"];
return (obj == null) ? null : (string)obj;
}
set
{
if (value.Trim().Length > 0)
ViewState["PageMaxStyle"] = value;
}
}
#endregion
#region Page index box
//gary
[Category("Behavior"),
Browsable(true),
DefaultValue(ShowPageIndexBox.Always),
Description("是否顯示跳轉頁面碼控件. 預設Never")]
public ShowPageIndexBox ShowPageIndexBox
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowPageIndexBox;
object obj = ViewState["ShowPageIndexBox"];
return (obj == null) ? ShowPageIndexBox.Always : (ShowPageIndexBox)obj;
}
set { ViewState["ShowPageIndexBox"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(PageIndexBoxType.TextBox),
Description("跳轉頁面碼控件類型")]
public PageIndexBoxType PageIndexBoxType
{
get
{
if (null != cloneFrom)
return cloneFrom.PageIndexBoxType;
object obj = ViewState["PageIndexBoxType"];
return (obj == null) ? PageIndexBoxType.TextBox : (PageIndexBoxType)obj;
}
set
{
ViewState["PageIndexBoxType"] = value;
}
}
//gary end
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件CssClass")]
public string PageIndexBoxClass
{
get
{
if (null != cloneFrom)
return cloneFrom.PageIndexBoxClass;
object obj = ViewState["PageIndexBoxClass"];
return (obj == null) ? null : (string)obj;
}
set
{
if (value.Trim().Length > 0)
ViewState["PageIndexBoxClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件Style")]
public string PageIndexBoxStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.PageIndexBoxStyle;
object obj = ViewState["PageIndexBoxStyle"];
return (obj == null) ? null : (string)obj;
}
set
{
if (value.Trim().Length > 0)
ViewState["PageIndexBoxStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件前顯示的文字。例如第X")]
public string TextBeforePageIndexBox
{
get
{
if (null != cloneFrom)
return cloneFrom.TextBeforePageIndexBox;
object obj = ViewState["TextBeforePageIndexBox"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["TextBeforePageIndexBox"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("跳轉頁面碼控件後顯示的文字。例如X頁")]
public string TextAfterPageIndexBox
{
get
{
if (null != cloneFrom)
return cloneFrom.TextAfterPageIndexBox;
object obj = ViewState["TextAfterPageIndexBox"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["TextAfterPageIndexBox"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue("Go"),
Description("跳轉頁面按鈕的文字。")]
public string SubmitButtonText
{
get
{
if (null != cloneFrom)
return cloneFrom.SubmitButtonText;
object obj = ViewState["SubmitButtonText"];
return (null == obj) ? "Go" : (string)obj;
}
set
{
if (null == value)
value = "Go";
ViewState["SubmitButtonText"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("跳轉頁面按鈕的Class。")]
public string SubmitButtonClass
{
get
{
if (null != cloneFrom)
return cloneFrom.SubmitButtonClass;
return (string)ViewState["SubmitButtonClass"];
}
set
{
ViewState["SubmitButtonClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("跳轉頁面按鈕的Style。")]
public string SubmitButtonStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.SubmitButtonStyle;
return (string)ViewState["SubmitButtonStyle"];
}
set
{
ViewState["SubmitButtonStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(""),
Description("跳轉頁面按鈕的圖片Url路徑。")]
public string SubmitButtonImageUrl
{
get
{
if (null != cloneFrom)
return cloneFrom.SubmitButtonImageUrl;
return (string)ViewState["SubmitButtonImageUrl"];
}
set { ViewState["SubmitButtonImageUrl"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(1),
Description("當超過多少頁時顯示跳轉頁面碼控件。預設30")]
public int ShowBoxThreshold
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowBoxThreshold;
object obj = ViewState["ShowBoxThreshold"];
return (null == obj) ? 1 : (int)obj;
}
set { ViewState["ShowBoxThreshold"] = value; }
}
#endregion
#region CustomInfoSection
[Category("Behavior"),
Browsable(true),
DefaultValue(ShowCustomInfoSection.Never),
Description("顯示客制化信息。預設Never")]
public ShowCustomInfoSection ShowCustomInfoSection
{
get
{
if (null != cloneFrom)
return cloneFrom.ShowCustomInfoSection;
object obj = ViewState["ShowCustomInfoSection"];
return (null == obj) ? ShowCustomInfoSection.Never : (ShowCustomInfoSection)obj;
}
set { ViewState["ShowCustomInfoSection"] = value; }
}
[Category("Behavior"),
Browsable(true),
DefaultValue(HorizontalAlign.NotSet),
Description("顯示客制化信息的水平方式")]
public HorizontalAlign CustomInfoTextAlign
{
get
{
if (null != cloneFrom)
return cloneFrom.CustomInfoTextAlign;
object obj = ViewState["CustomInfoTextAlign"];
return (null == obj) ? HorizontalAlign.NotSet : (HorizontalAlign)obj;
}
set
{
ViewState["CustomInfoTextAlign"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(typeof(Unit), "40%"),
Description("顯示客制化信息的寬度")]
public Unit CustomInfoSectionWidth
{
get
{
if (null != cloneFrom)
return cloneFrom.CustomInfoSectionWidth;
object obj = ViewState["CustomInfoSectionWidth"];
return (null == obj) ? Unit.Percentage(40) : (Unit)obj;
}
set
{
ViewState["CustomInfoSectionWidth"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("顯示客制化信息的Class")]
public string CustomInfoClass
{
get
{
if (null != cloneFrom)
return cloneFrom.CustomInfoClass;
object obj = ViewState["CustomInfoClass"];
return (null == obj) ? CssClass : (string)obj;
}
set
{
ViewState["CustomInfoClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("顯示客制化信息的Style")]
public string CustomInfoStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.CustomInfoStyle;
object obj = ViewState["CustomInfoStyle"];
return (null == obj) ? Style.Value : (string)obj;
}
set
{
ViewState["CustomInfoStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue("Page %CurrentPageIndex% of %PageCount%"),
Description("顯示客制化信息的格式。預設:Page %CurrentPageIndex% of %PageCount%")]
public string CustomInfoHTML
{
get
{
if (null != cloneFrom)
return cloneFrom.CustomInfoHTML;
object obj = ViewState["CustomInfoText"];
return (null == obj) ? "Page %CurrentPageIndex% of %PageCount%" : (string)obj;
}
set
{
ViewState["CustomInfoText"] = value;
}
}
#endregion
#region Css class and styles
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("當前頁碼的Style。")]
public string CurrentPageButtonStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.CurrentPageButtonStyle;
object obj = ViewState["CPBStyle"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["CPBStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("當前頁碼的Class。")]
public string CurrentPageButtonClass
{
get
{
if (null != cloneFrom)
return cloneFrom.CurrentPageButtonClass;
object obj = ViewState["CPBClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["CPBClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("分頁頁碼的Class。")]
public string PagingButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.PagingButtonsClass;
object obj = ViewState["PagingButtonsClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["PagingButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("分頁頁碼的Style。")]
public string PagingButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.PagingButtonsStyle;
object obj = ViewState["PagingButtonsStyle"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["PagingButtonsStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("第一頁的Class。")]
public string FirstButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.FirstButtonsClass;
object obj = ViewState["FirstButtonsClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["FirstButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("第一頁的Style。")]
public string FirstButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.FirstButtonsStyle;
object obj = ViewState["FirstButtonsStyle"];
return (null == obj) ? PagingButtonsStyle : (string)obj;
}
set
{
ViewState["FirstButtonsStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("最後一頁的Class。")]
public string LastButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.LastButtonsClass;
object obj = ViewState["LastButtonsClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["LastButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("最後一頁的Style。")]
public string LastButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.LastButtonsStyle;
object obj = ViewState["LastButtonsStyle"];
return (null == obj) ? PagingButtonsStyle : (string)obj;
}
set
{
ViewState["LastButtonsStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("上一頁的Class。")]
public string PrevButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.PrevButtonsClass;
object obj = ViewState["PrevButtonsClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["PrevButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("上一頁的Style。")]
public string PrevButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.PrevButtonsStyle;
object obj = ViewState["PrevButtonsStyle"];
return (null == obj) ? PagingButtonsStyle : (string)obj;
}
set
{
ViewState["PrevButtonsStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("下一頁的Class。")]
public string NextButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.NextButtonsClass;
object obj = ViewState["NextButtonsClass"];
return (null == obj) ? null : (string)obj;
}
set
{
ViewState["NextButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("下一頁的Style。")]
public string NextButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.NextButtonsStyle;
object obj = ViewState["NextButtonsStyle"];
return (null == obj) ? PagingButtonsStyle : (string)obj;
}
set
{
ViewState["NextButtonsStyle"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("...的Style。")]
public string MoreButtonsClass
{
get
{
if (null != cloneFrom)
return cloneFrom.MoreButtonsClass;
object obj = ViewState["MoreButtonsClass"];
return (null == obj) ? PagingButtonsClass : (string)obj;
}
set
{
ViewState["MoreButtonsClass"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(null),
Description("...的Style。")]
public string MoreButtonsStyle
{
get
{
if (null != cloneFrom)
return cloneFrom.MoreButtonsStyle;
object obj = ViewState["MoreButtonsStyle"];
return (null == obj) ? PagingButtonsStyle : (string)obj;
}
set
{
ViewState["MoreButtonsStyle"] = value;
}
}
#endregion
#region Others
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("控件的ID")]
public string CloneFrom
{
get
{
return (string)ViewState["CloneFrom"];
}
set
{
if (null != value && String.Empty == value.Trim())
throw new ArgumentNullException("CloneFrom", "The Value of property CloneFrom can not be empty string!");
if (ID.Equals(value, StringComparison.OrdinalIgnoreCase))
throw new ArgumentException("The property value of CloneFrom can not be set to control itself!", "CloneFrom");
ViewState["CloneFrom"] = value;
}
}
///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="EnableTheming"]/*'/>
public override bool EnableTheming
{
get
{
if (null != cloneFrom)
return cloneFrom.EnableTheming;
return base.EnableTheming;
}
set
{
base.EnableTheming = value;
}
}
///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="SkinID"]/*'/>
public override string SkinID
{
get
{
if (null != cloneFrom)
return cloneFrom.SkinID;
return base.SkinID;
}
set
{
base.SkinID = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("是否使用Url分頁")]
public bool EnableUrlRewriting
{
get
{
object obj = ViewState["UrlRewriting"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.EnableUrlRewriting;
return false;
}
return (bool)obj;
}
set
{
ViewState["UrlRewriting"] = value;
if (value)
UrlPaging = true;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("返回頁面")]
public string UrlRewritePattern
{
get
{
object obj = ViewState["URPattern"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.UrlRewritePattern;
if (EnableUrlRewriting)
{
if (!DesignMode)
{
string filePath = Page.Request.FilePath;
return Path.GetFileNameWithoutExtension(filePath) + "_{0}" + Path.GetExtension(filePath);
}
}
return null;
}
return (string)obj;
}
set
{
ViewState["URPattern"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(false),
Description("是否總是顯示分頁控件")]
public bool AlwaysShow
{
get
{
object obj = ViewState["AlwaysShow"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.AlwaysShow;
return false;
}
return (bool)obj;
}
set
{
ViewState["AlwaysShow"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(true),
Description("是否總是顯示第一頁和最後一頁")]
public bool AlwaysShowFirstLastPageNumber
{
get
{
object obj = ViewState["AlwaysShowFirstLastPageNumber"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.AlwaysShowFirstLastPageNumber;
return false;
}
return (bool)obj;
}
set
{
ViewState["AlwaysShowFirstLastPageNumber"] = value;
}
}
///// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Property[@name="Wrap"]/*'/>
public override bool Wrap
{
get
{
return base.Wrap;
}
set
{
base.Wrap = false;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue("當前頁碼超出正常範圍"),
Description("當前頁碼超出正常範圍提示信息。")]
public string PageIndexOutOfRangeErrorMessage
{
get
{
object obj = ViewState["PIOutOfRangeErrorMsg"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.PageIndexOutOfRangeErrorMessage;
return "當前頁碼超出正常範圍";
}
return (string)obj;
}
set
{
ViewState["PIOutOfRangeErrorMsg"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue("當前頁碼無效"),
Description("當前頁碼無效的錯誤提示信息。")]
public string InvalidPageIndexErrorMessage
{
get
{
object obj = ViewState["InvalidPIErrorMsg"];
if (null == obj)
{
if (null != cloneFrom)
return cloneFrom.InvalidPageIndexErrorMessage;
return "當前頁碼無效";
}
return (string)obj;
}
set
{
ViewState["InvalidPIErrorMsg"] = value;
}
}
[Category("Behavior"),
Browsable(true),
DefaultValue(LayoutType.Table),
Description("分頁控件預設顯示方式。預設Table")]
public LayoutType LayoutType
{
get
{
if (null != cloneFrom)
return cloneFrom.LayoutType;
object obj = ViewState["LayoutType"];
return (null == obj) ? LayoutType.Table : (LayoutType)obj;
}
set { ViewState["LayoutType"] = value; }
}
#endregion
}
}