📄 aspnetpager.cs
字号:
namespace PowerEasy.Controls
{
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
[ToolboxData("<{0}:AspNetPager runat=server></{0}:AspNetPager>"), DefaultEvent("PageChanged"), ParseChildren(false), DefaultProperty("PageSize"), PersistChildren(false), Description("专用于ASP.Net Web应用程序的分页控件"), Designer(typeof(PagerDesigner))]
public class AspNetPager : Panel, INamingContainer, IPostBackEventHandler, IPostBackDataHandler
{
private string cssClassName;
private string currentUrl;
private string inputPageIndex;
private string inputPageSize;
private string urlPageIndexName;
private bool urlPaging;
private NameValueCollection urlParams;
public event EventHandler<PageChangedEventArgs> PageChanged;
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
if (this.Page != null)
{
this.Page.VerifyRenderingInServerForm(this);
}
base.AddAttributesToRender(writer);
}
private void AddToolTip(HtmlTextWriter writer, int pageIndex)
{
if (this.ShowNavigationToolTip)
{
writer.AddAttribute(HtmlTextWriterAttribute.Title, string.Format(this.NavigationToolTipTextFormatString, pageIndex));
}
}
private string BuildUrlString(NameValueCollection col)
{
int num;
string str = "";
if ((this.urlParams == null) || (this.urlParams.Count <= 0))
{
for (num = 0; num < col.Count; num++)
{
str = str + ("&" + col.Keys[num] + "=" + col[num]);
}
return (this.currentUrl + "?" + str.Substring(1));
}
NameValueCollection values = new NameValueCollection(this.urlParams);
string[] allKeys = values.AllKeys;
for (num = 0; num < allKeys.Length; num++)
{
allKeys[num] = allKeys[num].ToLower();
}
for (num = 0; num < col.Count; num++)
{
if (Array.IndexOf<string>(allKeys, col.Keys[num].ToLower()) < 0)
{
values.Add(col.Keys[num], col[num]);
}
else
{
values[col.Keys[num]] = col[num];
}
}
StringBuilder builder = new StringBuilder();
for (num = 0; num < values.Count; num++)
{
builder.Append("&");
builder.Append(values.Keys[num]);
builder.Append("=");
builder.Append(values[num]);
}
return (this.currentUrl + "?" + builder.ToString().Substring(1));
}
private void CreateInputBox(HtmlTextWriter writer)
{
if ((this.ShowInputBox == PowerEasy.Controls.ShowInputBox.Always) || ((this.ShowInputBox == PowerEasy.Controls.ShowInputBox.Auto) && (this.PageCount >= this.ShowBoxThreshold)))
{
writer.Write(" ");
if (this.TextBeforeInputBox != null)
{
writer.Write(this.TextBeforeInputBox);
}
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
writer.AddStyleAttribute(HtmlTextWriterStyle.Height, "12px");
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "20px");
writer.AddAttribute(HtmlTextWriterAttribute.Value, this.CurrentPageIndex.ToString());
if ((this.InputBoxStyle != null) && (this.InputBoxStyle.Trim().Length > 0))
{
writer.AddAttribute(HtmlTextWriterAttribute.Style, this.InputBoxStyle);
}
if ((this.InputBoxClass != null) && (this.InputBoxClass.Trim().Length > 0))
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, this.InputBoxClass);
}
if ((this.PageCount <= 1) && this.AlwaysShow)
{
writer.AddAttribute(HtmlTextWriterAttribute.ReadOnly, "true");
}
writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID + "_input");
writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID + "_input");
string str = "doCheck(document.getElementById('" + this.UniqueID + "_input'))";
string str2 = "if(event.keyCode==13){if(" + str + ")__doPostBack('" + this.UniqueID + "',document.getElementById('" + this.UniqueID + "_input').value);else{event.returnValue=false;}}";
string str3 = "if(event.keyCode==13){if(" + str + "){event.returnValue=false;document.all['" + this.UniqueID + "'][1].click();}else{event.returnValue=false;}}";
string str4 = "if(" + str + "){location.href=BuildUrlString('" + this.urlPageIndexName + "',document.getElementById('" + this.UniqueID + "_input').value)}";
writer.AddAttribute("onkeypress", this.urlPaging ? str3 : str2);
writer.AddAttribute("onchange", this.urlPaging ? str3 : str2);
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
if (this.TextAfterInputBox != null)
{
writer.Write(this.TextAfterInputBox);
}
writer.AddAttribute(HtmlTextWriterAttribute.Type, this.urlPaging ? "Button" : "Submit");
writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Value, this.SubmitButtonText);
if ((this.SubmitButtonClass != null) && (this.SubmitButtonClass.Trim().Length > 0))
{
writer.AddAttribute(HtmlTextWriterAttribute.Class, this.SubmitButtonClass);
}
if ((this.SubmitButtonStyle != null) && (this.SubmitButtonStyle.Trim().Length > 0))
{
writer.AddAttribute(HtmlTextWriterAttribute.Style, this.SubmitButtonStyle);
}
if ((this.PageCount <= 1) && this.AlwaysShow)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true");
}
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, this.urlPaging ? str4 : ("return " + str));
writer.RenderBeginTag(HtmlTextWriterTag.Input);
writer.RenderEndTag();
}
}
private void CreateMoreButton(HtmlTextWriter writer, int pageIndex)
{
this.WriteCssClass(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(pageIndex));
this.AddToolTip(writer, pageIndex);
writer.RenderBeginTag(HtmlTextWriterTag.A);
if ((this.PagingButtonType == PowerEasy.Controls.PagingButtonType.Image) && (this.MoreButtonType == PowerEasy.Controls.PagingButtonType.Image))
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, this.ImagePath + "more" + this.ButtonImageNameExtension + this.ButtonImageExtension);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, this.ButtonImageAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
else
{
writer.Write("...");
}
writer.RenderEndTag();
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, this.PagingButtonSpacing.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.RenderEndTag();
}
private void CreateNavigationButton(HtmlTextWriter writer, string btnname)
{
if ((this.ShowFirstLast || ((btnname != "first") && (btnname != "last"))) && (this.ShowPrevNext || ((btnname != "prev") && (btnname != "next"))))
{
bool flag;
int num;
string str = "";
bool flag2 = (this.PagingButtonType == PowerEasy.Controls.PagingButtonType.Image) && (this.NavigationButtonType == PowerEasy.Controls.PagingButtonType.Image);
if ((btnname == "prev") || (btnname == "first"))
{
flag = this.CurrentPageIndex <= 1;
if (!this.ShowDisabledButtons && flag)
{
return;
}
num = (btnname == "first") ? 1 : (this.CurrentPageIndex - 1);
if (flag2)
{
if (!flag)
{
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(num));
this.AddToolTip(writer, num);
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.AddAttribute(HtmlTextWriterAttribute.Src, this.ImagePath + btnname + this.ButtonImageNameExtension + this.ButtonImageExtension);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, this.ButtonImageAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
writer.RenderEndTag();
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, this.ImagePath + btnname + this.DisabledButtonImageNameExtension + this.ButtonImageExtension);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, this.ButtonImageAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
}
else
{
str = (btnname == "prev") ? this.PrevPageText : this.FirstPageText;
if (flag)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled");
}
else
{
this.WriteCssClass(writer);
this.AddToolTip(writer, num);
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(num));
}
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.Write(str);
writer.RenderEndTag();
}
}
else
{
flag = this.CurrentPageIndex >= this.PageCount;
if (!this.ShowDisabledButtons && flag)
{
return;
}
num = (btnname == "last") ? this.PageCount : (this.CurrentPageIndex + 1);
if (flag2)
{
if (!flag)
{
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(num));
this.AddToolTip(writer, num);
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.AddAttribute(HtmlTextWriterAttribute.Src, this.ImagePath + btnname + this.ButtonImageNameExtension + this.ButtonImageExtension);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, this.ButtonImageAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
writer.RenderEndTag();
}
else
{
writer.AddAttribute(HtmlTextWriterAttribute.Src, this.ImagePath + btnname + this.DisabledButtonImageNameExtension + this.ButtonImageExtension);
writer.AddAttribute(HtmlTextWriterAttribute.Border, "0");
writer.AddAttribute(HtmlTextWriterAttribute.Align, this.ButtonImageAlign.ToString());
writer.RenderBeginTag(HtmlTextWriterTag.Img);
writer.RenderEndTag();
}
}
else
{
str = (btnname == "next") ? this.NextPageText : this.LastPageText;
if (flag)
{
writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "disabled");
}
else
{
this.WriteCssClass(writer);
this.AddToolTip(writer, num);
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(num));
}
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.Write(str);
writer.RenderEndTag();
}
}
this.WriteButtonSpace(writer);
}
}
private void CreateNumericButton(HtmlTextWriter writer, int index)
{
bool isCurrent = index == this.CurrentPageIndex;
if ((this.PagingButtonType == PowerEasy.Controls.PagingButtonType.Image) && (this.NumericButtonType == PowerEasy.Controls.PagingButtonType.Image))
{
if (!isCurrent)
{
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(index));
this.AddToolTip(writer, index);
writer.RenderBeginTag(HtmlTextWriterTag.A);
this.CreateNumericImages(writer, index, isCurrent);
writer.RenderEndTag();
}
else
{
this.CreateNumericImages(writer, index, isCurrent);
}
}
else if (isCurrent)
{
writer.AddStyleAttribute(HtmlTextWriterStyle.FontWeight, "Bold");
writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "red");
writer.RenderBeginTag(HtmlTextWriterTag.Font);
if (this.NumericButtonTextFormatString.Length > 0)
{
writer.Write(string.Format(this.NumericButtonTextFormatString, this.ChinesePageIndex ? GetChinesePageIndex(index) : index.ToString()));
}
else
{
writer.Write(this.ChinesePageIndex ? GetChinesePageIndex(index) : index.ToString());
}
writer.RenderEndTag();
}
else
{
this.WriteCssClass(writer);
this.AddToolTip(writer, index);
writer.AddAttribute(HtmlTextWriterAttribute.Href, this.GetHrefString(index));
writer.RenderBeginTag(HtmlTextWriterTag.A);
if (this.NumericButtonTextFormatString.Length > 0)
{
writer.Write(string.Format(this.NumericButtonTextFormatString, this.ChinesePageIndex ? GetChinesePageIndex(index) : index.ToString()));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -