增加了可自定义每页的记录数,并修订了在ajax的情况下,js不能动态绑定页面记录数绑定的问题
部分代码如下:
/**/ /// <include file='AspNetPagerDocs.xml' path='AspNetPagerDoc/Method[@name="RenderContents"]/*'/> protected override void RenderContents(HtmlTextWriter writer) ... { if (PageCount <= 1 && !AlwaysShow) return; if (ShowCustomInfoSection == ShowCustomInfoSection.Left) ...{ writer.Write(GetCustomInfoText(CustomInfoHTML)); writer.RenderEndTag(); WriteCellAttributes(writer, false); writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Td); } int midpage = ((CurrentPageIndex - 1) / NumericButtonCount); int pageoffset = midpage * NumericButtonCount; int endpage = ((pageoffset + NumericButtonCount) > PageCount) ? PageCount : (pageoffset + NumericButtonCount); this.CreateNavigationButton(writer, "first"); this.CreateNavigationButton(writer, "prev"); if (ShowPageIndex) ...{ if (CurrentPageIndex > NumericButtonCount) CreateMoreButton(writer, pageoffset); for (int i = pageoffset + 1; i <= endpage; i++) ...{ CreateNumericButton(writer, i); } if (PageCount > NumericButtonCount && endpage < PageCount) CreateMoreButton(writer, endpage + 1); } this.CreateNavigationButton(writer, "next"); this.CreateNavigationButton(writer, "last"); if ((ShowInputBox == ShowInputBox.Always) || (ShowInputBox == ShowInputBox.Auto && PageCount >= ShowBoxThreshold)) ...{ string inputClientID = this.UniqueID + "_input"; writer.Write(" "); if (!string.IsNullOrEmpty(TextBeforeInputBox)) writer.Write(TextBeforeInputBox); writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "30px"); writer.AddAttribute(HtmlTextWriterAttribute.Value, CurrentPageIndex.ToString()); if (!string.IsNullOrEmpty(InputBoxStyle)) writer.AddAttribute(HtmlTextWriterAttribute.Style, InputBoxStyle); if (!string.IsNullOrEmpty(InputBoxClass)) writer.AddAttribute(HtmlTextWriterAttribute.Class, InputBoxClass); if (PageCount <= 1 && AlwaysShow) writer.AddAttribute(HtmlTextWriterAttribute.ReadOnly, "true"); writer.AddAttribute(HtmlTextWriterAttribute.Name, inputClientID); writer.AddAttribute(HtmlTextWriterAttribute.Id, inputClientID); string chkInputScript = "ANP_checkInput('" + inputClientID + "'," + PageCount.ToString() + ")"; string keydownScript = "ANP_keydown(event,'" + this.UniqueID + "_btn');"; string clickScript = "if(" + chkInputScript + "){ANP_goToPage(document.getElementById('" + inputClientID + "'));}"; writer.AddAttribute("onkeydown", keydownScript); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); if (!string.IsNullOrEmpty(TextAfterInputBox)) writer.Write(TextAfterInputBox); writer.AddAttribute(HtmlTextWriterAttribute.Type, (UrlPaging == true) ? "Button" : "Submit"); writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID + "_btn"); writer.AddAttribute(HtmlTextWriterAttribute.Value, SubmitButtonText); if (!string.IsNullOrEmpty(SubmitButtonClass)) writer.AddAttribute(HtmlTextWriterAttribute.Class, SubmitButtonClass); if (!string.IsNullOrEmpty(SubmitButtonStyle)) writer.AddAttribute(HtmlTextWriterAttribute.Style, SubmitButtonStyle); //TODO:chen gang 2007-01-25 增加鼠标移动样式改变 if (SubmitButtonOnMouseOver != null && SubmitButtonOnMouseOver.Trim().Length > 0) writer.AddAttribute("onmouseover", "this.className='" + SubmitButtonOnMouseOver + "';"); if (SubmitButtonOnMouseOut != null && SubmitButtonOnMouseOut.Trim().Length > 0) writer.AddAttribute("onmouseout", "this.className='" + SubmitButtonOnMouseOut + "';"); if (PageCount <= 1 && AlwaysShow) writer.AddAttribute(HtmlTextWriterAttribute.Disabled, "true"); writer.AddAttribute(HtmlTextWriterAttribute.Onclick, (UrlPaging == true) ? clickScript : "return " + chkInputScript); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); } add by chengang#region add by chengang //TODO:add by chengang 2007-01-18 if ((ShowSelectBox == ShowInputBox.Always) || (ShowSelectBox == ShowInputBox.Auto && PageCount * PageSize >= ShowSelectBoxThreshold)) ...{ string selectClientID = this.UniqueID + "_select"; writer.Write(" "); if (TextBeforeSelectBox != null) writer.Write(TextBeforeSelectBox); writer.AddAttribute(HtmlTextWriterAttribute.Type,"text"); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "50px"); writer.AddAttribute(HtmlTextWriterAttribute.Value, this.PageSize.ToString()); if (SelectBoxStyle != null && SelectBoxStyle.Trim().Length > 0) writer.AddAttribute(HtmlTextWriterAttribute.Style, SelectBoxStyle); if (SelectBoxClass != null && SelectBoxClass.Trim().Length > 0) writer.AddAttribute(HtmlTextWriterAttribute.Class, SelectBoxClass); writer.AddAttribute(HtmlTextWriterAttribute.Name, selectClientID); writer.AddAttribute(HtmlTextWriterAttribute.Id, selectClientID); string postRef1 = "if(event.keyCode==13){__doPostBack('" + this.UniqueID + "',document.all['" + this.UniqueID + "_select'].value)}"; string keydownScript1 = "if(event.keyCode==13){event.returnValue=false;document.all['" + this.UniqueID + "'][1].click();}"; string clickScript1 = "location.href=BuildUrlString('" + urlPageSize + "',document.all['" + this.UniqueID + "_select'].value);"; string scriptRef = "doCheck(document.all['" + this.UniqueID + "_input'])"; // string scriptRef = ""; writer.AddAttribute("onchange", (UrlPaging == true) ? keydownScript1 : postRef1); writer.RenderBeginTag(HtmlTextWriterTag.Select); //writer.RenderEndTag(); // writer.RenderBeginTag(HtmlTextWriterTag.Script); // string scriptLoadSelect = "var selectitem = document.all("" + this.UniqueID + "_select");var oOption1 = document.createElement("OPTION"); oOption1.text = "" + this.PageSize.ToString() + "";oOption1.value = " + this.PageSize.ToString() + ";selectitem.add(oOption1);for(var i=5;i<=40;i=i+5){var oOption = document.createElement("OPTION");oOption.text = i;oOption.value = i; selectitem.add(oOption);}var oOption = document.createElement("OPTION"); oOption.text = "全部";oOption.value = " + this.PageSize * this.PageCount + ";selectitem.add(oOption);"; // writer.Write(scriptLoadSelect); //TODO:实现功能:增加页面数设置的绑定,修订了js在ajax的情况不能对该设置的刷新.add by chengang 2007-01-18 bool selectAll = true; for(int i=5;i<=40;i=i+5) ...{ if (i == this.PageSize) ...{ writer.AddAttribute(HtmlTextWriterAttribute.Selected, "Selected"); selectAll = false; } writer.AddAttribute(HtmlTextWriterAttribute.Value, i.ToString()); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write(i.ToString()); writer.RenderEndTag(); } //记录数超过1000 if (this.PageSize * this.PageCount < 1000) ...{ if (selectAll) ...{ writer.AddAttribute(HtmlTextWriterAttribute.Selected, "Selected"); } writer.AddAttribute(HtmlTextWriterAttribute.Value, (this.PageSize * this.PageCount).ToString()); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write("全部"); writer.RenderEndTag(); } writer.RenderEndTag(); if (TextAfterSelectBox != null) writer.Write(TextAfterSelectBox); writer.AddAttribute(HtmlTextWriterAttribute.Type, (UrlPaging == true) ? "Button" : "Submit"); writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID + ""); writer.AddAttribute(HtmlTextWriterAttribute.Value, SubmitButtonSelectText); if (SubmitButtonClass != null && SubmitButtonClass.Trim().Length > 0) writer.AddAttribute(HtmlTextWriterAttribute.Class, SubmitButtonClass); if (SubmitButtonStyle != null && SubmitButtonStyle.Trim().Length > 0) writer.AddAttribute(HtmlTextWriterAttribute.Style, SubmitButtonStyle); //TODO:chen gang 2007-01-25 增加鼠标移动样式改变 if (SelectBoxOnMouseOver != null && SelectBoxOnMouseOver.Trim().Length > 0) writer.AddAttribute("onmouseover", "this.className='" + SelectBoxOnMouseOver + "';"); if (SelectBoxOnMouseOut != null && SelectBoxOnMouseOut.Trim().Length > 0) writer.AddAttribute("onmouseout", "this.className='" + SelectBoxOnMouseOut + "';"); writer.AddAttribute(HtmlTextWriterAttribute.Onclick, (UrlPaging == true) ? clickScript1 : "return " + scriptRef); writer.RenderBeginTag(HtmlTextWriterTag.Input); writer.RenderEndTag(); } #endregion add by chengang if (ShowCustomInfoSection == ShowCustomInfoSection.Right) ...{ writer.RenderEndTag(); WriteCellAttributes(writer, false); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.Write(GetCustomInfoText(CustomInfoHTML)); } } #endregion
如需要全部代码联系我msn:eme915@hotmail.com
