
1.建立用户控件Pager.ascx
1.1 html

<scriptlanguage="javascript">
functioncallButtonEvent()

{
varkeycode=window.event.keyCode;
if(keycode==13)

{
if(check()==true)

{
event.cancelBubble=true;
event.returnValue=false;
document.getElementById('<%=btnGo.ClientID%>').click();
}
}
}
functioncheck()

{
varcount=parseInt(document.getElementById('<%=lblTotal.ClientID%>').outerText);
vartxt=document.getElementById('<%=txtCurrentPage.ClientID%>').value;
varcur=parseInt(txt);
if((cur|NaN)==0)

{
alert('Inputpagemustformatasinteger.');
event.cancelPostBack=true;
returnfalse;
}
if(cur>count||cur<1)

{
alert('Inputpagenooutofrange.');
event.cancelPostBack=true;
returnfalse;
}
}
</script>
<TABLEID="Table1"CELLSPACING="0"CELLPADDING="0"WIDTH="100%"BORDER="0">
<colgroup>
<colwidth="400">
<colwidth="50">
<colwidth="50">
<colwidth="40">
<colwidth="20">
<colwidth="40">
<colwidth="40">
<colwidth="50">
<colwidth="70">
</colgroup>
<TRalign="right">
<td></td>
<TD><asp:LinkButtonid="btnFirstPage"runat="server"CommandArgument="First">第一页</asp:LinkButton></TD>
<TD><asp:LinkButtonid="btnPrevPage"runat="server"CommandArgument="Prev">上一页</asp:LinkButton></TD>
<TD><ASP:TEXTBOXID="txtCurrentPage"RUNAT="server"MAXLENGTH="3"Width="40">0</ASP:TEXTBOX></TD>
<TD><ASP:LABELID="labOf"RUNAT="server">of</ASP:LABEL></TD>
<TD><ASP:LABELID="lblTotal"RUNAT="server">0</ASP:LABEL></TD>
<TD><ASP:BUTTONID="btnGo"RUNAT="server"TEXT="转到"COMMANDARGUMENT="Go"ToolTip="转到"></ASP:BUTTON></TD>
<TD><asp:LinkButtonid="btnNextPage"runat="server"CommandArgument="Next">下一页</asp:LinkButton></TD>
<TD><asp:LinkButtonid="btnLastPage"runat="server"CommandArgument="Last">最后一页</asp:LinkButton></TD>
</TR>
</TABLE>
1.2 cs代码
publicclassPager:System.Web.UI.UserControl

{
protectedSystem.Web.UI.WebControls.LabellblTotal;
protectedSystem.Web.UI.WebControls.LabellabOf;
protectedSystem.Web.UI.WebControls.TextBoxtxtCurrentPage;
protectedSystem.Web.UI.WebControls.ButtonbtnGo;
protectedSystem.Web.UI.WebControls.LinkButtonbtnFirstPage;
protectedSystem.Web.UI.WebControls.LinkButtonbtnPrevPage;
protectedSystem.Web.UI.WebControls.LinkButtonbtnNextPage;
protectedSystem.Web.UI.WebControls.LinkButtonbtnLastPage;
intsize=10;//可以在web.config中配置
publiceventSystem.EventHandlerNavigationClick;
privatevoidPage_Load(objectsender,System.EventArgse)

{
this.txtCurrentPage.Attributes.Add("onkeypress","callButtonEvent();");
this.btnGo.Attributes.Add("onclick","check();");
if(!this.IsPostBack)

{
SetStyle();
SetEnable();
}
}

WebFormDesignergeneratedcode#regionWebFormDesignergeneratedcode
overrideprotectedvoidOnInit(EventArgse)

{
//
//CODEGEN:ThiscallisrequiredbytheASP.NETWebFormDesigner.
//
InitializeComponent();
base.OnInit(e);
this.btnFirstPage.Click+=newSystem.EventHandler(this.btnGo_Click);
this.btnPrevPage.Click+=newSystem.EventHandler(this.btnGo_Click);
this.btnNextPage.Click+=newSystem.EventHandler(this.btnGo_Click);
this.btnLastPage.Click+=newSystem.EventHandler(this.btnGo_Click);
this.btnGo.Click+=newSystem.EventHandler(this.btnGo_Click);
}

/**////<summary>
///RequiredmethodforDesignersupport-donotmodify
///thecontentsofthismethodwiththecodeeditor.
///</summary>
privatevoidInitializeComponent()

{
this.Load+=newSystem.EventHandler(this.Page_Load);
}
#endregion

btnGo_Click#regionbtnGo_Click
privatevoidbtnGo_Click(objectsender,System.EventArgse)

{
LinkButtonlinkbtn=senderasLinkButton;
if(null==linkbtn)//button

{
Buttonbtn=senderasButton;
if(null==btn)

{
return;
}
else

{
intselPage=-1;
try

{
selPage=Int32.Parse(txtCurrentPage.Text);
}
catch

{
selPage=-1;
}
if(selPage>0&&selPage<=PageCount)

{
ViewState["CurrentPageIndex"]=selPage;
}
else

{
return;
}
}
}
else//linkbutton

{
switch(linkbtn.CommandArgument.Trim())

{
case"First":
ViewState["CurrentPageIndex"]=1;
break;
case"Prev":
ViewState["CurrentPageIndex"]=(CurrentPageIndex>1)?CurrentPageIndex-1:1;
break;
case"Next":
ViewState["CurrentPageIndex"]=(PageCount>CurrentPageIndex)?CurrentPageIndex+1:PageCount;
break;
case"Last":
ViewState["CurrentPageIndex"]=PageCount;
break;
default:
break;
}
}
SetEnable();//设置显示样式
if(NavigationClick!=null)//调用事件

{
NavigationClick(sender,e);
}
}
#endregion

SetStyle#regionSetStyle
privatevoidSetStyle()
本文介绍了一个自定义的ASP.NET用户控件——分页控件Pager的实现方法,包括HTML结构和C#后台代码。该控件通过JavaScript增强用户体验,并支持多种页面跳转操作。
1214

被折叠的 条评论
为什么被折叠?



