📄 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 + -