Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
        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("&nbsp;");
                }

                writer.AddAttribute(HtmlTextWriterAttribute.Href, "#");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(FirstText);
                writer.RenderEndTag();
                writer.Write("&nbsp;");

                writer.AddAttribute(HtmlTextWriterAttribute.Href, "#");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(LastText);
                writer.RenderEndTag();
                writer.Write("&nbsp;");

                //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("&nbsp;");

                //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("&nbsp;");

                        writer.RenderBeginTag(HtmlTextWriterTag.Span);
                        writer.Write(string.Format(ShowCurrentPageText, CurrentPage + "/" + TotalPage));
                        writer.RenderEndTag();
                        writer.Write("&nbsp;");

                        //當資料總數大於一頁設定數的時候
                        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("&nbsp;");

                        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("&nbsp;");

                        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("&nbsp;&nbsp;");
                                ////上一頁
                                //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:");
                                //writer.RenderBeginTag(HtmlTextWriterTag.A);
                                //writer.Write(PreText);
                                //writer.RenderEndTag();
                                //writer.Write("&nbsp;&nbsp;");
                            }
                            else
                            {
                                //首頁
                                writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, 1 + ""));
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                                writer.Write(FirstText);
                                writer.RenderEndTag();
                                writer.Write("&nbsp;");
                                //上一頁
                                writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, prevPage + ""));
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                                writer.Write(PreText);
                                writer.RenderEndTag();
                                writer.Write("&nbsp;");
                            }

                            if (CurrentPage != 1)
                            {
                                writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, 1 + ""));
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                                writer.Write("[1]");
                                writer.RenderEndTag();
                                //writer.Write("&nbsp;");
                            }

                            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("&nbsp;");
                                }
                            }

                            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("&nbsp;");
                            }

                            if (nextPage > TotalPage)
                            {
                                ////下一頁
                                //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:");
                                //writer.RenderBeginTag(HtmlTextWriterTag.A);
                                //writer.Write(NextText);
                                //writer.RenderEndTag();
                                //writer.Write("&nbsp;&nbsp;");
                                ////尾頁
                                //writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:");
                                //writer.RenderBeginTag(HtmlTextWriterTag.A);
                                //writer.Write(LastText);
                                //writer.RenderEndTag();
                                //writer.Write("&nbsp;&nbsp;");
                            }
                            else
                            {
                                //下一頁
                                writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, nextPage + ""));
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                                writer.Write(NextText);
                                writer.RenderEndTag();
                                writer.Write("&nbsp;");
                                //尾頁
                                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("&nbsp;&nbsp;");
                        //    }
                        //    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("&nbsp;&nbsp;");
                        //    }

                        //    //可直接點擊的頁面的起始頁數
                        //    //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("&nbsp;");
                        //    }
                        //    //與第一頁數相差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("&nbsp;");
                        //    }
                        //    //與最後頁數相差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("&nbsp;");
                        //    }

                        //    //如果當前頁不為第一頁
                        //    if (CurrentPage > 1)
                        //    {
                        //        writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, "1"));
                        //        writer.RenderBeginTag(HtmlTextWriterTag.A);
                        //        writer.Write(FirstText);
                        //        writer.RenderEndTag();
                        //        writer.Write("&nbsp;");
                        //    }

                        //    if (CurrentPage < TotalPage)
                        //    {
                        //        writer.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:" + Page.ClientScript.GetPostBackEventReference(this, TotalPage + ""));
                        //        writer.RenderBeginTag(HtmlTextWriterTag.A);
                        //        writer.Write(LastText);
                        //        writer.RenderEndTag();
                        //        writer.Write("&nbsp;");
                        //    }
                        //}

                        //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("&nbsp;");

                        //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();
                    }
                }
            }
        }