asp.net 페이지 컨트롤
18162 단어 asp.net
[
DefaultEvent("Paging"),
DefaultProperty("Text"),
AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal),
ToolboxData("<{0}:Pager runat=\"server\"></{0}:Pager>")
]
public class Pager : CompositeControl
{
private LinkButton _lbtnPrevious;
private LinkButton _lbtnNext;
private DropDownList _ddlPageItem;
private static readonly object EventPagingKey =
new object();
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
string s = (string) ViewState["Text"];
return (s ?? string.Empty);
}
set { ViewState["Text"] = value; }
}
[Category("Appearance")]
[DefaultValue(10)]
[Localizable(true)]
public int PageSize
{
get
{
string s = (string) ViewState["PageSize"];
int pageSize = 0;
int.TryParse(s, out pageSize);
return pageSize;
}
set { ViewState["PageSize"] = value.ToString(); }
}
[Category("Appearance")]
[DefaultValue(1)]
[Localizable(true)]
public int CurrentPageIndex
{
get
{
string s = (string) ViewState["CurrentPageIndex"];
int currentPageIndex = 0;
int.TryParse(s, out currentPageIndex);
if (currentPageIndex < 1)
currentPageIndex = 1;
return currentPageIndex;
}
set { ViewState["CurrentPageIndex"] = value.ToString(); }
}
[Category("Appearance")]
[DefaultValue(0)]
[Localizable(true)]
public int RecordCount
{
get
{
string s = (string) ViewState["RecordCount"];
int recordCount = 0;
int.TryParse(s, out recordCount);
return recordCount;
}
set { ViewState["RecordCount"] = value.ToString(); }
}
[Category("Appearance")]
[DefaultValue(0)]
[Localizable(true)]
public int PageCount
{
get
{
string s = (string) ViewState["PageCount"];
int pageCount = 0;
int.TryParse(s, out pageCount);
return pageCount;
}
private set { ViewState["PageCount"] = value.ToString(); }
}
private void BuildChildControls()
{
if (PageSize > 0)
{
PageCount = RecordCount / PageSize;
if (RecordCount % PageSize != 0)
PageCount++;
}
_lbtnPrevious = new LinkButton { Text = " ", ID = "lbtnPrevious", Enabled = (CurrentPageIndex > 1) };
_lbtnPrevious.Click += _lbtnPrevious_Click;
this.Controls.Add(_lbtnPrevious);
_ddlPageItem = new DropDownList { ID = "ddlPageItem", AutoPostBack = true };
_ddlPageItem.SelectedIndexChanged += _ddlPageItem_SelectedIndexChanged;
for (var i = 1; i <= PageCount; i++)
{
_ddlPageItem.Items.Add(new ListItem(string.Format(" {0} ", i), i.ToString()));
}
this.Controls.Add(_ddlPageItem);
_lbtnNext = new LinkButton { Text = " ", ID = "lbtnNext", Enabled = (CurrentPageIndex < PageCount) };
_lbtnNext.Click += _lbtnNext_Click;
this.Controls.Add(_lbtnNext);
}
protected override void CreateChildControls()
{
this.Controls.Clear();
ClearChildControlState();
BuildChildControls();
}
private void _ddlPageItem_SelectedIndexChanged(object sender, EventArgs e)
{
int pageIndex;
int.TryParse(_ddlPageItem.SelectedItem.Value, out pageIndex);
CurrentPageIndex = pageIndex;
OnPaging(e);
}
public event EventHandler Paging
{
add { this.Events.AddHandler(EventPagingKey, value); }
remove { this.Events.RemoveHandler(EventPagingKey, value); }
}
protected virtual void OnPaging(EventArgs e)
{
var submitHandler = (EventHandler) Events[EventPagingKey];
if (submitHandler != null)
{
submitHandler(this, e);
}
_lbtnPrevious.Enabled = CurrentPageIndex > 1;
_lbtnNext.Enabled = CurrentPageIndex < PageCount;
_ddlPageItem.SelectedValue = CurrentPageIndex.ToString();
}
private void _lbtnPrevious_Click(object sender, EventArgs e)
{
if (CurrentPageIndex > 1)
{
CurrentPageIndex -= 1;
OnPaging(e);
}
else
{
_lbtnPrevious.Enabled = false;
}
}
private void _lbtnNext_Click(object sender, EventArgs e)
{
if (CurrentPageIndex < PageCount)
{
CurrentPageIndex += 1;
OnPaging(e);
}
else
{
_lbtnNext.Enabled = false;
}
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}
}
기능 이 비교적 간단 하고 핸드폰 단말기 asp.net 개발 에 비교적 적합 합 니 다.PC 단 에 서 는 아래 연결 상자 로 페이지 번 호 를 모두 열거 하 는 것 을 권장 하지 않 습 니 다.개선 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.