?? pagelister.cs
字號:
DefaultValue(HorizontalAlign.Center),
Description("擴展信息對齊方式。")
]
public HorizontalAlign ExpendInfoTextAlign
{
get
{
object obj=ViewState["ExpendInfoTextAlign"];
return (obj==null)?HorizontalAlign.Center:(HorizontalAlign)obj;
}
set
{
ViewState["ExpendInfoTextAlign"]=value;
}
}
/// <summary>
/// 獲取或設置用戶自定義信息區的寬度。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
DefaultValue(typeof(Unit),"40%"),
Description("擴展信息信息區的寬度。")
]
public Unit ExpendInfoWidth
{
get
{
object obj=ViewState["ExpendInfoWidth"];
return (obj==null)?Unit.Percentage(40):(Unit)obj;
}
set
{
ViewState["ExpendInfoWidth"]=value;
}
}
/// <summary>
/// 獲取或設置在顯示在擴展信息區的文本。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
Editor(typeof(ExpendInfoTextEditor),typeof(UITypeEditor)),
DefaultValue(""),
Description("要在顯示在擴展信息區的文本。")
]
public string ExpendInfoText
{
get
{
object obj=ViewState["ExpendInfoText"];
return (obj==null)?(String.Empty):(string)obj;
}
set
{
ViewState["ExpendInfoText"]=value;
}
}
/// <summary>
/// 獲取或設置不可用導航按鈕的CSS樣式文本。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
DefaultValue(""),
Description("應用于擴展信息文本的CSS樣式文本。")
]
public string ExpendInfoTextCssClass
{
get
{
object obj=ViewState["ExpendInfoTextCssClass"];
return (obj==null)?CssClass:(string)obj;
}
set
{
ViewState["ExpendInfoTextCssClass"]=value;
}
}
/// <summary>
/// 獲取或設置不可用導航按鈕的CSS樣式文本。
/// </summary>
[
Browsable(true),
Category("擴展信息"),
DefaultValue(""),
Description("應用于擴展信息項目的CSS樣式文本。")
]
public string ExpendInfoItemCssClass
{
get
{
object obj=ViewState["ExpendInfoItemCssClass"];
return (obj==null)?CssClass:(string)obj;
}
set
{
ViewState["ExpendInfoItemCssClass"]=value;
}
}
#endregion
/// <summary>
/// 重寫 <see cref="System.Web.UI.WebControls.WebControl.RenderBeginTag"/> 方法,HTML 開始標記輸出到指定的 <see cref="System.Web.UI.HtmlTextWriter"/> 編寫器中。
/// </summary>
/// <param name="writer"></param>
public override void RenderBeginTag(System.Web.UI.HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Width,"100%");
if(Height!=Unit.Empty)
writer.AddStyleAttribute(HtmlTextWriterStyle.Height,Height.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Border,"0");
writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding,"0");
writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing,"0");
writer.RenderBeginTag(HtmlTextWriterTag.Table);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
}
/// <summary>
/// 重寫 <see cref="System.Web.UI.WebControls.WebControl.RenderContents"/> 方法,將控件的內容呈現到指定 <see cref="System.Web.UI.HtmlTextWriter"/> 的編寫器中。
/// </summary>
/// <param name="writer"></param>
protected override void RenderContents(HtmlTextWriter writer)
{
switch(ShowExpendInfo)
{
case ShowExpendInfo.Never:
RenderPageInfo(writer);
break;
case ShowExpendInfo.Left:
RenderExpendInfo(writer);
RenderPageInfo(writer);
break;
case ShowExpendInfo.Right:
RenderPageInfo(writer);
RenderExpendInfo(writer);
break;
}
}
/// <summary>
/// 重寫 <see cref="System.Web.UI.WebControls.WebControl.RenderEndTag"/> 方法,將HTML 結束標記輸出到指定的 <see cref="System.Web.UI.HtmlTextWriter"/> 編寫器中。
/// </summary>
/// <param name="writer"></param>
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.RenderEndTag();
writer.RenderEndTag();
}
/// <summary>
/// 呈現導航內容。
/// </summary>
/// <param name="writer"></param>
private void RenderPageInfo(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Align,HorizontalAlign.Center.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Td);
GetFirstButton(writer);
GetPrevButton(writer);
GetPrevGroupButton(writer);
GetPageButton(writer);
GetNextGroupButton(writer);
GetNextButton(writer);
GetLastButton(writer);
writer.RenderEndTag();
}
/// <summary>
/// 呈現擴展信息內容。
/// </summary>
/// <param name="writer"></param>
private void RenderExpendInfo(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Width,ExpendInfoWidth.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Align,ExpendInfoTextAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(String.Format(ExpendInfoText,PageIndex,PageSize,RecordCount,RecordStartIndex,RecordEndIndex,PageCount));
writer.RenderEndTag();
}
/// <summary>
/// 獲得第一頁按鈕
/// </summary>
/// <param name="writer"></param>
private void GetFirstButton(HtmlTextWriter writer)
{
if(ShowFirstLast)
{
if(PageIndex==1)
{
if(ShowDisabledButton)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,DisabledPageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Span);
if (FirstPageText=="|<<")
writer.Write("<font face=\"webdings\">9</font>");
else
writer.Write(FirstPageText);
writer.RenderEndTag();
}
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"FirstPage"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (FirstPageText=="|<<")
writer.Write("<font face=\"webdings\">9</font>");
else
writer.Write(FirstPageText);
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得前一頁按鈕
/// </summary>
/// <param name="writer"></param>
private void GetPrevButton(HtmlTextWriter writer)
{
if(ShowPrevNext)
{
if(PageIndex==1)
{
if(ShowDisabledButton)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,DisabledPageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Span);
if (PrevPageText=="<")
writer.Write("<font face=\"webdings\">3</font>");
else
writer.Write(PrevPageText);
writer.RenderEndTag();
}
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"PrevPage"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (PrevPageText=="<")
writer.Write("<font face=\"webdings\">3</font>");
else
writer.Write(PrevPageText);
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得前一組索引數字按鈕
/// </summary>
/// <param name="writer"></param>
private void GetPrevGroupButton(HtmlTextWriter writer)
{
if(ShowPageIndex)
{
if(GroupIndex>1)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"PrevGroup"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.Write("...");
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得索引數字按紐
/// </summary>
/// <param name="writer"></param>
private void GetPageButton(HtmlTextWriter writer)
{
if(ShowPageIndex)
{
for(int pageIndex=1;pageIndex<=Math.Min(NumericButtonCount,RecordCount-(GroupIndex-1)*NumericButtonCount);pageIndex++)
{
if(GroupIndex*NumericButtonCount+pageIndex!=PageIndex)
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
else
writer.AddAttribute(HtmlTextWriterAttribute.Class,CurrentPageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,pageIndex.ToString()));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if(NumericButtonTextFormatString!=String.Empty)
writer.Write(String.Format(NumericButtonTextFormatString,((int)((GroupIndex-1)*NumericButtonCount+pageIndex)).ToString()));
else
writer.Write((GroupIndex-1)*NumericButtonCount+pageIndex);
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得后一組索引數字按鈕
/// </summary>
/// <param name="writer"></param>
private void GetNextGroupButton(HtmlTextWriter writer)
{
if(ShowPageIndex)
{
if(GroupIndex<GroupCount)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"NextGroup"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.Write("...");
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得后一頁按鈕
/// </summary>
/// <param name="writer"></param>
private void GetNextButton(HtmlTextWriter writer)
{
if(ShowPrevNext)
{
if(PageIndex==PageCount || RecordCount==0)
{
if(ShowDisabledButton)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,DisabledPageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Span);
if (NextPageText==">")
writer.Write("<font face=\"webdings\">4</font>");
else
writer.Write(NextPageText);
writer.RenderEndTag();
}
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"NextPage"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (NextPageText==">")
writer.Write("<font face=\"webdings\">4</font>");
else
writer.Write(NextPageText);
writer.RenderEndTag();
}
}
}
/// <summary>
/// 獲得最后頁按鈕
/// </summary>
/// <param name="writer"></param>
private void GetLastButton(HtmlTextWriter writer)
{
if(ShowFirstLast)
{
if(PageIndex==PageCount || RecordCount==0)
{
if(ShowDisabledButton)
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,DisabledPageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Span);
if (LastPageText==">>|")
writer.Write("<font face=\"webdings\">:</font>");
else
writer.Write(LastPageText);
writer.RenderEndTag();
}
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Class,PageButtonCssClass);
writer.AddAttribute(HtmlTextWriterAttribute.Style,"padding-left:" + ButtonSpacing.ToString());
writer.AddAttribute(HtmlTextWriterAttribute.Href,"javascript:" + Page.GetPostBackEventReference(this,"LastPage"));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (LastPageText==">>|")
writer.Write("<font face=\"webdings\">:</font>");
else
writer.Write(LastPageText);
writer.RenderEndTag();
}
}
}
/// <summary>
/// 當單擊頁選擇元素之一時發生。
/// </summary>
public event PageIndexChangedEventHandler PageIndexChanged;
/// <summary>
/// 引發 PageIndexChanged 事件。這使您可以為事件提供自定義處理程序。
/// </summary>
protected virtual void OnPageIndexChanged(PageIndexChangedEventArgs e)
{
if (PageIndexChanged != null)
PageIndexChanged(this, e);
}
#region IPostBackEventHandler 成員
/// <summary>
/// 實現<see cref="IPostBackEventHandler"/> 接口,使控件能夠處理將窗體發送到服務器時引發的事件。
/// </summary>
public void RaisePostBackEvent(string eventArgument)
{
int pageIndex=PageIndex;
switch(eventArgument)
{
case "FirstPage":
pageIndex=1;
break;
case "PrevPage":
pageIndex--;
break;
case "PrevGroup":
pageIndex=(GroupIndex-1)*NumericButtonCount;
break;
case "NextGroup":
pageIndex=GroupIndex*NumericButtonCount+1;
break;
case "NextPage":
pageIndex++;
break;
case "LastPage":
pageIndex=PageCount;
break;
default:
try
{
pageIndex=(GroupIndex-1)*NumericButtonCount + int.Parse(eventArgument);
}
catch{}
break;
}
OnPageIndexChanged(new PageIndexChangedEventArgs(pageIndex));
}
#endregion
}
/// <summary>
/// 表示處理 PageIndexChanged 事件的方法。
/// </summary>
public delegate void PageIndexChangedEventHandler(object source,PageIndexChangedEventArgs e);
/// <summary>
/// 為控件的PageIndexChanged事件提供數據。無法繼承此類。
/// </summary>
public sealed class PageIndexChangedEventArgs:EventArgs
{
private readonly int _newpageindex;
/// <summary>
/// 使用新頁面索引初始化 PageIndexChangedEventArgs 類的新實例。
/// </summary>
public PageIndexChangedEventArgs(int newPageIndex)
{
_newpageindex=newPageIndex;
}
/// <summary>
/// 獲取用戶在控件的頁選擇元素中選定的或在頁索引文本框中手工輸入的頁的索引。
/// </summary>
public int NewPageIndex
{
get{return _newpageindex;}
}
}
/// <summary>
/// 顯示擴展信息的方法。
/// </summary>
public enum ShowExpendInfo
{
/// <summary>
/// 不顯示。
/// </summary>
Never,
/// <summary>
/// 顯示在頁導航元素之前。
/// </summary>
Left,
/// <summary>
/// 顯示在頁導航元素之后。
/// </summary>
Right
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -