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
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("<<"),
|
|
Description("第一頁顯示文字,預設<<")]
|
|
public string FirstPageText
|
|
{
|
|
get
|
|
{
|
|
if (null != cloneFrom)
|
|
return cloneFrom.FirstPageText;
|
|
object obj = ViewState["FirstPageText"];
|
|
return (obj == null) ? "<<" : (string)obj;
|
|
}
|
|
set { ViewState["FirstPageText"] = value; }
|
|
}
|
|
|
|
|
|
[Category("Behavior"),
|
|
Browsable(true),
|
|
DefaultValue("<"),
|
|
Description("上一頁顯示文字,預設<")]
|
|
public string PrevPageText
|
|
{
|
|
get
|
|
{
|
|
if (null != cloneFrom)
|
|
return cloneFrom.PrevPageText;
|
|
object obj = ViewState["PrevPageText"];
|
|
return (obj == null) ? "<" : (string)obj;
|
|
}
|
|
set { ViewState["PrevPageText"] = value; }
|
|
}
|
|
|
|
[Category("Behavior"),
|
|
Browsable(true),
|
|
DefaultValue(">"),
|
|
Description("下一頁顯示文字,預設>")]
|
|
public string NextPageText
|
|
{
|
|
get
|
|
{
|
|
if (null != cloneFrom)
|
|
return cloneFrom.NextPageText;
|
|
object obj = ViewState["NextPageText"];
|
|
return (obj == null) ? ">" : (string)obj;
|
|
}
|
|
set { ViewState["NextPageText"] = value; }
|
|
}
|
|
|
|
[Category("Behavior"),
|
|
Browsable(true),
|
|
DefaultValue(">>"),
|
|
Description("最後一頁顯示文字,預設>>")]
|
|
public string LastPageText
|
|
{
|
|
get
|
|
{
|
|
if (null != cloneFrom)
|
|
return cloneFrom.LastPageText;
|
|
object obj = ViewState["LastPageText"];
|
|
return (obj == null) ? ">>" : (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
|
|
}
|
|
}
|