protected override void OnInit(EventArgs e) { base.OnInit(e); if (!DesignMode) { SetCurrentPage(0); SetTotalPage(0); int initPageSize = 0; string[] strsizes = ShowPageSizeList.Split(','); Regex rs = new Regex(@"\d+"); if (strsizes.Length > 0) { initPageSize = IntStd.ParseStd(rs.Match(strsizes[0])).Value; } else { initPageSize = 10; } ShowPageSize = initPageSize; } }
protected override void Render(HtmlTextWriter writer) { if (DesignMode) { writer.AddStyleAttribute(HtmlTextWriterStyle.Width, this.Width); writer.AddStyleAttribute(HtmlTextWriterStyle.Height, this.Height); writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID); writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID); writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(string.Format(TotalSizeText, _totolSize)); writer.RenderEndTag(); writer.Write(" "); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(string.Format(SizeShowPerPageText, "1~5")); writer.RenderEndTag(); writer.Write(" "); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100px"); writer.RenderBeginTag(HtmlTextWriterTag.Select); writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write("每頁10筆"); writer.RenderEndTag(); writer.RenderEndTag(); writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(PreText); writer.RenderEndTag(); writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(NextText); writer.RenderEndTag(); writer.Write(" "); for (int i = 1; i <= 10; i++) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("[" + i.ToString() + "]"); writer.RenderEndTag(); writer.Write(" "); } writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(FirstText); writer.RenderEndTag(); writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, "#"); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(LastText); writer.RenderEndTag(); writer.Write(" "); //writer.AddStyleAttribute(HtmlTextWriterStyle.Height, Height); //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "50px"); //writer.AddAttribute(HtmlTextWriterAttribute.Value, ""); //writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); //writer.RenderBeginTag(HtmlTextWriterTag.Input); //writer.RenderEndTag(); //writer.Write(" "); //writer.AddStyleAttribute(HtmlTextWriterStyle.Height, Height); //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "50px"); //writer.AddAttribute(HtmlTextWriterAttribute.Value, "GO"); //writer.AddAttribute(HtmlTextWriterAttribute.Type, "button"); //writer.RenderBeginTag(HtmlTextWriterTag.Input); //writer.RenderEndTag(); writer.RenderEndTag(); } else { if (Visible && _hasData) { writer.AddAttribute(HtmlTextWriterAttribute.Id, this.ClientID); writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, this.Width); writer.AddStyleAttribute(HtmlTextWriterStyle.Height, this.Height); if (CssClass != "") { writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClass); } writer.RenderBeginTag(HtmlTextWriterTag.Div); //出錯處理 if (_iserror) { writer.AddStyleAttribute(HtmlTextWriterStyle.FontStyle, "font-color:red;"); writer.RenderBeginTag(HtmlTextWriterTag.P); writer.RenderEndTag(); } else { //添加__dopoastback脚本 writer.Write("<a style='display:none' onclick=" + Page.ClientScript.GetPostBackEventReference(this, "") + "></a>"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(string.Format(TotalSizeText, _totolSize)); writer.RenderEndTag(); writer.Write(" "); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(string.Format(ShowCurrentPageText, CurrentPage + "/" + TotalPage)); writer.RenderEndTag(); writer.Write(" "); //當資料總數大於一頁設定數的時候 writer.RenderBeginTag(HtmlTextWriterTag.Span); //本頁起始資料序號 int start = (CurrentPage - 1) * ShowPageSize + 1; //本頁結束資料序號 int end = CurrentPage * ShowPageSize; end = end <= _totolSize ? end : _totolSize; writer.Write(string.Format(SizeShowPerPageText, start + "~" + end)); writer.RenderEndTag(); writer.Write(" "); writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100px"); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID + "_PageSize"); writer.AddAttribute(HtmlTextWriterAttribute.Name, UniqueID + "$PageSize"); writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "javascript:__doPostBack('" + this.UniqueID + "','PageSize='+document.getElementById('" + this.ClientID + "_PageSize').value)"); writer.RenderBeginTag(HtmlTextWriterTag.Select); string[] strsizes = ShowPageSizeList.Split(','); Regex rs = new Regex(@"\d+"); foreach (string s in strsizes) { string sizevalue = rs.Match(s).Value; writer.AddAttribute(HtmlTextWriterAttribute.Value, sizevalue); if (sizevalue == ShowPageSize.ToString()) { writer.AddAttribute(HtmlTextWriterAttribute.Selected, "true"); } writer.RenderBeginTag(HtmlTextWriterTag.Option); writer.Write(s); writer.RenderEndTag(); } writer.RenderEndTag(); writer.Write(" "); if (_totolSize > ShowPageSize) { //Add By TangbaoPeng On 2112/12/14 int prevPage = this.CurrentPage - 1, nextPage = this.CurrentPage + 1; if (prevPage < 1) { ////首頁 //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:"); //writer.RenderBeginTag(HtmlTextWriterTag.A); //writer.Write(FirstText); //writer.RenderEndTag(); //writer.Write(" "); ////上一頁 //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:"); //writer.RenderBeginTag(HtmlTextWriterTag.A); //writer.Write(PreText); //writer.RenderEndTag(); //writer.Write(" "); } else { //首頁 writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, 1 + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(FirstText); writer.RenderEndTag(); writer.Write(" "); //上一頁 writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, prevPage + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(PreText); writer.RenderEndTag(); writer.Write(" "); } if (CurrentPage != 1) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, 1 + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("[1]"); writer.RenderEndTag(); //writer.Write(" "); } if (CurrentPage >= 5) { writer.Write("<span>...</span>"); } int startPage = 0; int endPage = 0; startPage = CurrentPage - 2; if (TotalPage > CurrentPage + 2) { endPage = CurrentPage + 2; //if (TotalPage>4&&CurrentPage <= 4) // endPage = 5; } else { endPage = TotalPage; } //if (CurrentPage > TotalPage - 4) // startPage = TotalPage - 4; for (int i = startPage; i <= endPage; i++) { if (i > 0) { if (i == CurrentPage) { writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write("[<b>" + i.ToString() + "</b>]"); writer.RenderEndTag(); } else { if (i != 1 && i != TotalPage) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, i + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("[" + i.ToString() + "]"); writer.RenderEndTag(); } } // writer.Write(" "); } } if (CurrentPage + 3 < TotalPage) { writer.Write("<span>...</span>"); } if (CurrentPage != TotalPage) { writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, TotalPage + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("[" + TotalPage + "]"); writer.RenderEndTag(); // writer.Write(" "); } if (nextPage > TotalPage) { ////下一頁 //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:"); //writer.RenderBeginTag(HtmlTextWriterTag.A); //writer.Write(NextText); //writer.RenderEndTag(); //writer.Write(" "); ////尾頁 //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:"); //writer.RenderBeginTag(HtmlTextWriterTag.A); //writer.Write(LastText); //writer.RenderEndTag(); //writer.Write(" "); } else { //下一頁 writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, nextPage + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(NextText); writer.RenderEndTag(); writer.Write(" "); //尾頁 writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, TotalPage + "")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(LastText); writer.RenderEndTag(); } } //End Add By TangbaoPeng On 2112/12/14 // //如果當前頁不為第一頁 // if (CurrentPage > 1) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, CurrentPage - 1 + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write(PreText); // writer.RenderEndTag(); // writer.Write(" "); // } // if (CurrentPage < TotalPage) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, CurrentPage + 1 + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write(NextText); // writer.RenderEndTag(); // writer.Write(" "); // } // //可直接點擊的頁面的起始頁數 // //int startPage = CurrentPage > ShowPageSize ? CurrentPage - ShowPageSize + 1 : 1; // //int endPage = TotalPage > ShowPageSize ? (startPage + ShowPageSize - 1) : TotalPage; // int tmp = _page_show_size / 2; // int startPage = 0; // if (CurrentPage > TotalPage - tmp + 1) // { // startPage = TotalPage - _page_show_size + 1 > 0 ? TotalPage - _page_show_size + 1 : 1; // } // else // { // startPage = CurrentPage - tmp > 0 ? CurrentPage - tmp : 1; // } // int endPage = 0; // if (tmp * 2 == _page_show_size) // { // if (TotalPage > CurrentPage + (tmp - 1)) // { // if (_page_show_size > CurrentPage + (tmp - 1)) // { // endPage = _page_show_size; // } // else // { // endPage = CurrentPage + (tmp - 1); // } // } // else // { // endPage = TotalPage; // } // } // else // { // if (TotalPage > CurrentPage + tmp) // { // if (_page_show_size > CurrentPage + tmp) // { // endPage = _page_show_size; // } // else // { // endPage = CurrentPage + tmp; // } // } // else // { // endPage = TotalPage; // } // } // //總顯示第一頁 // if (startPage > 1) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, 1 + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write("[1]"); // writer.RenderEndTag(); // writer.Write(" "); // } // //與第一頁數相差2個以上,則加上…… // if (startPage > 2) // { // writer.Write("......"); // } // for (int i = startPage; i <= endPage; i++) // { // //如果為當前頁 // if (i == CurrentPage) // { // writer.RenderBeginTag(HtmlTextWriterTag.Span); // writer.Write("[<b>" + i.ToString() + "</b>]"); // writer.RenderEndTag(); // } // else // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, i + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write("[" + i.ToString() + "]"); // writer.RenderEndTag(); // } // writer.Write(" "); // } // //與最後頁數相差2個以上,則加上…… // if (endPage < TotalPage - 1) // { // writer.Write("......"); // } // //總顯示最後一頁 // if (endPage < TotalPage ) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, TotalPage + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write("["+TotalPage+"]"); // writer.RenderEndTag(); // writer.Write(" "); // } // //如果當前頁不為第一頁 // if (CurrentPage > 1) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, "1")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write(FirstText); // writer.RenderEndTag(); // writer.Write(" "); // } // if (CurrentPage < TotalPage) // { // writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, TotalPage + "")); // writer.RenderBeginTag(HtmlTextWriterTag.A); // writer.Write(LastText); // writer.RenderEndTag(); // writer.Write(" "); // } //} //writer.AddStyleAttribute(HtmlTextWriterStyle.Height,"15px"); //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "50px"); //writer.AddAttribute(HtmlTextWriterAttribute.Value, ""); //writer.AddAttribute(HtmlTextWriterAttribute.Type, "text"); //writer.AddAttribute(HtmlTextWriterAttribute.Id,ClientID+"_GoTo"); //writer.AddAttribute(HtmlTextWriterAttribute.Name,UniqueID+"$GoTo"); //writer.RenderBeginTag(HtmlTextWriterTag.Input); //writer.RenderEndTag(); //writer.Write(" "); //writer.AddStyleAttribute(HtmlTextWriterStyle.Height, Height); //writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "50px"); //writer.AddAttribute(HtmlTextWriterAttribute.Value, "GO"); //writer.AddAttribute(HtmlTextWriterAttribute.Type, "submit"); //writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "javascript:__doPostBack('" + this.UniqueID + "',document.getElementById('" + this.ClientID + "_GoTo').value)"); //writer.RenderBeginTag(HtmlTextWriterTag.Input); //writer.RenderEndTag(); writer.RenderEndTag(); } } } }