void CreatePagerButton(TableRow row, string imageUrl, string text, int pageIndex, string cmdArgument, bool noLink)
 {
     TableCell cell = new TableCell();
     cell.Attributes["nowrap"] = "true";
     if (!noLink)
     {
         IButtonControl btnCtrl;
         if (!string.IsNullOrEmpty(imageUrl))
         {
             btnCtrl = new DataControlImageButton(this);
             ((DataControlImageButton)btnCtrl).ImageUrl = imageUrl;
             ((DataControlImageButton)btnCtrl).AlternateText = HttpUtility.HtmlDecode(text);
             ((DataControlImageButton)btnCtrl).ToolTip = text;
             ((DataControlImageButton)btnCtrl).EnableCallback(this.BuildCallbackArgument(pageIndex));
         }
         else
         {
             btnCtrl = new DataControlPagerLinkButton(this);
             ((DataControlPagerLinkButton)btnCtrl).Text = text;
             ((DataControlPagerLinkButton)btnCtrl).ToolTip = text;
             ((DataControlPagerLinkButton)btnCtrl).EnableCallback(this.BuildCallbackArgument(pageIndex));
         }
         btnCtrl.CommandName = "Page";
         btnCtrl.CommandArgument = cmdArgument;
         if (!string.IsNullOrEmpty(this.FooterLinkCSS))
             ((WebControl)btnCtrl).CssClass = this.FooterLinkCSS;
         cell.Controls.Add((Control)btnCtrl);
     }
     else
     {
         Control ctrl = null;
         if (!string.IsNullOrEmpty(imageUrl))
         {
             ctrl = new System.Web.UI.WebControls.Image();
             ((System.Web.UI.WebControls.Image)ctrl).ImageUrl = imageUrl;
             ((System.Web.UI.WebControls.Image)ctrl).AlternateText = HttpUtility.HtmlDecode(text);
             ((System.Web.UI.WebControls.Image)ctrl).ToolTip = text;
         }
         else
         {
             ctrl = new Label();
             ((Label)ctrl).Text = text;
             ((Label)ctrl).ToolTip = text;
         }
         cell.Controls.Add(ctrl);
     }
     row.Cells.Add(cell);
 }
        void CreateNumericPager(TableRow row, PagedDataSourceEx pagedDataSource, bool addFirstLastPageButtons)
        {
            LinkButton button = null;
            PagerSettingsEx pagerSettings = this.PagerSettings;
            int pageCount = pagedDataSource.PageCount;
            int nextPageIndex = pagedDataSource.CurrentPageIndex + 1;
            int pageButtonCount = pagerSettings.PageButtonCount;
            int firstDisplayPageIndex = this.FirstDisplayPageIndex + 1;
            int pageIndex = (pageCount < pageButtonCount) ? pageCount : pageButtonCount;

            int startIndex = 1;
            if (nextPageIndex > pageIndex)
            {
                if (firstDisplayPageIndex > 0 && ((nextPageIndex - firstDisplayPageIndex >= 0) && (nextPageIndex - firstDisplayPageIndex < pageButtonCount)))
                    startIndex = firstDisplayPageIndex;
                else
                    startIndex = (pagedDataSource.CurrentPageIndex / pageButtonCount) + 1;
                pageIndex = startIndex + pageButtonCount - 1;
                if (pageIndex > pageCount)
                    pageIndex = pageCount;
                if ((pageIndex - startIndex) + 1 < pageButtonCount)
                    startIndex = Math.Max(1, (pageIndex - pageButtonCount + 1));
                this.FirstDisplayPageIndex = startIndex - 1;
            }

            #region 首页
            if (addFirstLastPageButtons && (nextPageIndex != 1) && (startIndex != 1))
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string firstPageImageUrl = pagerSettings.FirstPageImageUrl;
                if (!string.IsNullOrEmpty(firstPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = firstPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.FirstPageText);
                    ((DataControlImageButton)control).ToolTip = "第一页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(0));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.FirstPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "第一页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(0));
                }
                control.CommandName = "Page";
                control.CommandArgument = "First";
                cell.Controls.Add((Control)control);
            }
            #endregion

            #region 前更多
            if (startIndex != 1)
            {
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                button = new DataControlPagerLinkButton(this);
                button.Text = "...";
                button.ToolTip = "更多...";
                button.CommandName = "Page";
                button.CommandArgument = (startIndex - 1).ToString(NumberFormatInfo.InvariantInfo);
                ((DataControlPagerLinkButton)button).EnableCallback(this.BuildCallbackArgument(startIndex - 2));
                cell.Controls.Add(button);
            }
            #endregion

            #region 页索引
            for (int i = startIndex; i <= pageIndex; i++)
            {
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string str = i.ToString(NumberFormatInfo.InvariantInfo);
                if (i == nextPageIndex)
                {
                    Label child = new Label();
                    child.Text = str;
                    cell.Controls.Add(child);
                }
                else
                {
                    button = new DataControlPagerLinkButton(this);
                    button.Text = str;
                    button.ToolTip = str;
                    button.CommandName = "Page";
                    button.CommandArgument = str;
                    ((DataControlPagerLinkButton)button).EnableCallback(this.BuildCallbackArgument(i - 1));
                    cell.Controls.Add(button);
                }
            }
            #endregion

            #region 后更多
            if (pageCount > pageIndex)
            {
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                button = new DataControlPagerLinkButton(this);
                button.Text = "...";
                button.ToolTip = "更多...";
                button.CommandName = "Page";
                button.CommandArgument = (pageIndex + 1).ToString(NumberFormatInfo.InvariantInfo);
                ((DataControlPagerLinkButton)button).EnableCallback(this.BuildCallbackArgument(pageIndex));
                cell.Controls.Add(button);
            }
            #endregion

            #region 末页
            if (addFirstLastPageButtons && (nextPageIndex != pageCount) && (pageIndex != pageCount))
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string lastPageImageUrl = pagerSettings.LastPageImageUrl;
                if (!string.IsNullOrEmpty(lastPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = lastPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.LastPageText);
                    ((DataControlImageButton)control).ToolTip = "最后页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.LastPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "最后页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                control.CommandName = "Page";
                control.CommandArgument = "Last";
                cell.Controls.Add((Control)control);
            }
            #endregion
        }
        void CreateNextPrevPager(TableRow row, PagedDataSourceEx pagedDataSource, bool addFirstLastPageButtons)
        {
            PagerSettingsEx pagerSettings = this.PagerSettings;
            string previousPageImageUrl = pagerSettings.PreviousPageImageUrl;
            string nextPageImageUrl = pagerSettings.NextPageImageUrl;
            bool isFirstPage = pagedDataSource.IsFirstPage;
            bool isLastPage = pagedDataSource.IsLastPage;

            #region 第一页
            if (addFirstLastPageButtons && !isFirstPage)
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string firstPageImageUrl = pagerSettings.FirstPageImageUrl;
                if (!string.IsNullOrEmpty(firstPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = firstPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.FirstPageText);
                    ((DataControlImageButton)control).ToolTip = "第一页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(0));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.FirstPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "第一页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(0));
                }
                control.CommandName = "Page";
                control.CommandArgument = "First";
                cell.Controls.Add((Control)control);
            }
            #endregion

            #region 上一页
            if (!isFirstPage)
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                if (!string.IsNullOrEmpty(previousPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = previousPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.PreviousPageText);
                    ((DataControlImageButton)control).ToolTip = "上一页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(this.PageIndex - 1));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.PreviousPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "上一页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(this.PageIndex - 1));
                }
                control.CommandName = "Page";
                control.CommandArgument = "Prev";
                cell.Controls.Add((Control)control);
            }
            #endregion

            #region 下一页
            if (!isLastPage)
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                if (!string.IsNullOrEmpty(nextPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = nextPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.NextPageText);
                    ((DataControlImageButton)control).ToolTip = "下一页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(this.PageIndex + 1));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.NextPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "下一页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(this.PageIndex + 1));
                }
                control.CommandName = "Page";
                control.CommandArgument = "Next";
                cell.Controls.Add((Control)control);
            }
            #endregion

            #region 最后页
            if (addFirstLastPageButtons && !isLastPage)
            {
                IButtonControl control = null;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string lastPageImageUrl = pagerSettings.LastPageImageUrl;
                if (!string.IsNullOrEmpty(lastPageImageUrl))
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = lastPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.LastPageText);
                    ((DataControlImageButton)control).ToolTip = "最后页";
                    ((DataControlImageButton)control).EnableCallback(this.BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.LastPageText;
                    ((DataControlPagerLinkButton)control).ToolTip = "最后页";
                    ((DataControlPagerLinkButton)control).EnableCallback(this.BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                control.CommandName = "Page";
                control.CommandArgument = "Last";
                cell.Controls.Add((Control)control);
            }
            #endregion
        }
        /// <summary>
        /// 创建默认分页
        /// </summary>
        /// <param name="row"></param>
        /// <param name="pagedDataSource"></param>
        protected virtual void CreateDefaultNextPreviousFirstLastPager(TableRow row, PagedDataSourceEx pagedDataSource)
        {
            PagerSettingsEx pagerSettings = this.PagerSettings;
            bool isFirstPage = pagedDataSource.IsFirstPage;
            bool isLastPage = pagedDataSource.IsLastPage;
            TableCell cell = null;
            if (this.AllowPaging)
            {
                //第一页。
                this.CreatePagerButton(row, pagerSettings.FirstPageImageUrl, "第一页", 0, "First", isFirstPage);
                //上一页
                if (!isFirstPage)
                    this.CreatePagerButton(row, pagerSettings.PreviousPageImageUrl, "上一页", this.PageIndex - 1, "Prev", isFirstPage);
                //下一页
                if (!isLastPage)
                    this.CreatePagerButton(row, pagerSettings.NextPageImageUrl, "下一页", this.PageIndex + 1, "Next", isLastPage);
                //最末页
                this.CreatePagerButton(row, pagerSettings.LastPageImageUrl, "最末页", this.PageCount + 1, "Last", isLastPage);

                //页面统计。
                cell = new TableCell();
                cell.Attributes["nowrap"] = "true";
                HtmlGenericControl span = new HtmlGenericControl("span");
                span.Attributes["style"] = "float:left;margin-left:2px;";
                span.InnerText = string.Format("第{0}页/共{1}页 总记录数:{2}",
                    pagedDataSource.CurrentPageIndex + 1,
                    pagedDataSource.PageCount,
                    pagedDataSource.DataSourceCount);
                cell.Controls.Add(span);
                row.Cells.Add(cell);

                //页面跳转。
                cell = new TableCell();
                cell.Attributes["nowrap"] = "true";
                HtmlGenericControl div = new HtmlGenericControl("div");
                div.Attributes["class"] = this.FooterInputCSS;

                span = new HtmlGenericControl("span");
                span.Attributes["style"] = "float:left;margin-left:2px;margin-top:3px;";
                span.InnerText = "到第";
                div.Controls.Add(span);

                LinkButton linkBtn = new DataControlPagerLinkButton(this);
                linkBtn.Attributes["style"] = "float:left;margin-top:2px;";
                linkBtn.Text = "[GO]";
                linkBtn.CommandName = "Page";
                linkBtn.CommandArgument = (pagedDataSource.CurrentPageIndex + 1).ToString(NumberFormatInfo.InvariantInfo);
                ((DataControlPagerLinkButton)linkBtn).EnableCallback(this.BuildCallbackArgument(pagedDataSource.CurrentPageIndex));

                TextBox numTextBox = new TextBox();
                numTextBox.Text = (pagedDataSource.CurrentPageIndex + 1).ToString(NumberFormatInfo.InvariantInfo);
                numTextBox.Attributes["style"] = "float:left;";
                numTextBox.Attributes["onkeypress"] = "javascript:return event.keyCode>=48&&event.keyCode<=57;";
                numTextBox.Attributes["ondragenter"] = "javascript:return false;";
                numTextBox.Attributes["onpaste"] = "javascript:return !clipboardData.getData('text').match(/\\D/);";
                numTextBox.Style.Add("ime-mode", "Disabled");
                numTextBox.MaxLength = 5;
                numTextBox.AutoPostBack = true;
                numTextBox.TextChanged += new EventHandler(delegate(object sender, EventArgs e)
                {
                    int pageNo = 1, pageCount = pagedDataSource.PageCount;
                    try
                    {
                        pageNo = int.Parse(((TextBox)sender).Text);
                    }
                    catch { }
                    if (pageNo > pageCount)
                        pageNo = pageCount;
                    linkBtn.CommandArgument = pageNo.ToString(NumberFormatInfo.InvariantInfo);
                    ((DataControlPagerLinkButton)linkBtn).EnableCallback(this.BuildCallbackArgument(pageNo - 1));
                });

                div.Controls.Add(numTextBox);

                span = new HtmlGenericControl("span");
                span.Attributes["style"] = "float:left;margin-top:3px;";
                span.InnerText = "页";
                div.Controls.Add(span);

                div.Controls.Add(linkBtn);

                cell.Controls.Add(div);
                row.Cells.Add(cell);
            }
            else
            {
                cell = new TableCell();
                cell.Controls.Add(new LiteralControl(string.Format("&nbsp; 总记录数:{0}",
                    pagedDataSource.DataSourceCount)));
                row.Cells.Add(cell);
            }
            cell = new TableCell();
            cell.Attributes["align"] = "right";
            LinkButton pagerLinkBtn = new LinkButton();
            pagerLinkBtn.Text = this.AllowPaging ? "[全部]" : "[分页]";
            pagerLinkBtn.CssClass = this.FooterLinkCSS;
            pagerLinkBtn.CausesValidation = false;
            pagerLinkBtn.Command += new CommandEventHandler(delegate(object sender, CommandEventArgs e)
            {
                this.AllowPaging = !this.AllowPaging;
                this.InvokeBuildDataSource();
            });
            cell.Controls.Add(pagerLinkBtn);
            row.Cells.Add(cell);
        }
Beispiel #5
0
 private void CreateNumericPager(TableRow row, IPagedDataSource pagedDataSource, bool addFirstLastPageButtons)
 {
     LinkButton button;
     PagerSettings pagerSettings = PagerSettings;
     int pageCount = pagedDataSource.PageCount;
     int num2 = pagedDataSource.PageIndex + 1;
     int pageButtonCount = pagerSettings.PageButtonCount;
     int num4 = pageButtonCount;
     Int32 FirstDisplayedPageIndex = 0;
     int num5 = FirstDisplayedPageIndex + 1;
     if (pageCount < num4)
     {
         num4 = pageCount;
     }
     int num6 = 1;
     int pageIndex = num4;
     if (num2 > pageIndex)
     {
         int num8 = pagedDataSource.PageIndex / pageButtonCount;
         bool flag = ((num2 - num5) >= 0) && ((num2 - num5) < pageButtonCount);
         if ((num5 > 0) && flag)
         {
             num6 = num5;
         }
         else
         {
             num6 = (num8 * pageButtonCount) + 1;
         }
         pageIndex = (num6 + pageButtonCount) - 1;
         if (pageIndex > pageCount)
         {
             pageIndex = pageCount;
         }
         if (((pageIndex - num6) + 1) < pageButtonCount)
         {
             num6 = Math.Max(1, (pageIndex - pageButtonCount) + 1);
         }
         FirstDisplayedPageIndex = num6 - 1;
     }
     if ((addFirstLastPageButtons && (num2 != 1)) && (num6 != 1))
     {
         IButtonControl control;
         TableCell cell = new TableCell();
         row.Cells.Add(cell);
         string firstPageImageUrl = pagerSettings.FirstPageImageUrl;
         if (firstPageImageUrl.Length > 0)
         {
             control = new DataControlImageButton(this);
             ((DataControlImageButton)control).ImageUrl = firstPageImageUrl;
             ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.FirstPageText);
             ((DataControlImageButton)control).EnableCallback(BuildCallbackArgument(0));
         }
         else
         {
             control = new DataControlPagerLinkButton(this);
             ((DataControlPagerLinkButton)control).Text = pagerSettings.FirstPageText;
             ((DataControlPagerLinkButton)control).EnableCallback(BuildCallbackArgument(0));
         }
         control.CommandName = "Page";
         control.CommandArgument = "First";
         cell.Controls.Add((Control)control);
     }
     if (num6 != 1)
     {
         TableCell cell2 = new TableCell();
         row.Cells.Add(cell2);
         button = new DataControlPagerLinkButton(this);
         button.Text = "...";
         button.CommandName = "Page";
         button.CommandArgument = (num6 - 1).ToString(NumberFormatInfo.InvariantInfo);
         ((DataControlPagerLinkButton)button).EnableCallback(BuildCallbackArgument(num6 - 2));
         cell2.Controls.Add(button);
     }
     for (int i = num6; i <= pageIndex; i++)
     {
         TableCell cell3 = new TableCell();
         row.Cells.Add(cell3);
         string str2 = i.ToString(NumberFormatInfo.InvariantInfo);
         if (i == num2)
         {
             Label child = new Label();
             child.Text = str2;
             cell3.Controls.Add(child);
         }
         else
         {
             button = new DataControlPagerLinkButton(this);
             button.Text = str2;
             button.CommandName = "Page";
             button.CommandArgument = str2;
             ((DataControlPagerLinkButton)button).EnableCallback(BuildCallbackArgument(i - 1));
             cell3.Controls.Add(button);
         }
     }
     if (pageCount > pageIndex)
     {
         TableCell cell4 = new TableCell();
         row.Cells.Add(cell4);
         button = new DataControlPagerLinkButton(this);
         button.Text = "...";
         button.CommandName = "Page";
         button.CommandArgument = (pageIndex + 1).ToString(NumberFormatInfo.InvariantInfo);
         ((DataControlPagerLinkButton)button).EnableCallback(BuildCallbackArgument(pageIndex));
         cell4.Controls.Add(button);
     }
     bool flag2 = pageIndex == pageCount;
     if ((addFirstLastPageButtons && (num2 != pageCount)) && !flag2)
     {
         IButtonControl control2;
         TableCell cell5 = new TableCell();
         row.Cells.Add(cell5);
         string lastPageImageUrl = pagerSettings.LastPageImageUrl;
         if (lastPageImageUrl.Length > 0)
         {
             control2 = new DataControlImageButton(this);
             ((DataControlImageButton)control2).ImageUrl = lastPageImageUrl;
             ((DataControlImageButton)control2).AlternateText = HttpUtility.HtmlDecode(pagerSettings.LastPageText);
             ((DataControlImageButton)control2).EnableCallback(BuildCallbackArgument(pagedDataSource.PageCount - 1));
         }
         else
         {
             control2 = new DataControlPagerLinkButton(this);
             ((DataControlPagerLinkButton)control2).Text = pagerSettings.LastPageText;
             ((DataControlPagerLinkButton)control2).EnableCallback(BuildCallbackArgument(pagedDataSource.PageCount - 1));
         }
         control2.CommandName = "Page";
         control2.CommandArgument = "Last";
         cell5.Controls.Add((Control)control2);
     }
 }
Beispiel #6
0
        ///// <summary>
        ///// 已重写。保证创建子控件
        ///// </summary>
        //public override ControlCollection Controls
        //{
        //    get
        //    {
        //        this.EnsureChildControls();
        //        return base.Controls;
        //    }
        //}
        #endregion

        #region 四种分页
        private void CreateNextPrevPager(TableRow row, IPagedDataSource pagedDataSource, bool addFirstLastPageButtons)
        {
            PagerSettings pagerSettings = PagerSettings;
            string previousPageImageUrl = pagerSettings.PreviousPageImageUrl;
            string nextPageImageUrl = pagerSettings.NextPageImageUrl;
            bool isFirstPage = pagedDataSource.IsFirstPage;
            bool isLastPage = pagedDataSource.IsLastPage;
            if (addFirstLastPageButtons && !isFirstPage)
            {
                IButtonControl control;
                TableCell cell = new TableCell();
                row.Cells.Add(cell);
                string firstPageImageUrl = pagerSettings.FirstPageImageUrl;
                if (firstPageImageUrl.Length > 0)
                {
                    control = new DataControlImageButton(this);
                    ((DataControlImageButton)control).ImageUrl = firstPageImageUrl;
                    ((DataControlImageButton)control).AlternateText = HttpUtility.HtmlDecode(pagerSettings.FirstPageText);
                    ((DataControlImageButton)control).EnableCallback(BuildCallbackArgument(0));
                }
                else
                {
                    control = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control).Text = pagerSettings.FirstPageText;
                    ((DataControlPagerLinkButton)control).EnableCallback(BuildCallbackArgument(0));
                }
                control.CommandName = "Page";
                control.CommandArgument = "First";
                cell.Controls.Add((Control)control);
            }
            if (!isFirstPage)
            {
                IButtonControl control2;
                TableCell cell2 = new TableCell();
                row.Cells.Add(cell2);
                if (previousPageImageUrl.Length > 0)
                {
                    control2 = new DataControlImageButton(this);
                    ((DataControlImageButton)control2).ImageUrl = previousPageImageUrl;
                    ((DataControlImageButton)control2).AlternateText = HttpUtility.HtmlDecode(pagerSettings.PreviousPageText);
                    ((DataControlImageButton)control2).EnableCallback(BuildCallbackArgument(PageIndex - 1));
                }
                else
                {
                    control2 = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control2).Text = pagerSettings.PreviousPageText;
                    ((DataControlPagerLinkButton)control2).EnableCallback(BuildCallbackArgument(PageIndex - 1));
                }
                control2.CommandName = "Page";
                control2.CommandArgument = "Prev";
                cell2.Controls.Add((Control)control2);
            }
            if (!isLastPage)
            {
                IButtonControl control3;
                TableCell cell3 = new TableCell();
                row.Cells.Add(cell3);
                if (nextPageImageUrl.Length > 0)
                {
                    control3 = new DataControlImageButton(this);
                    ((DataControlImageButton)control3).ImageUrl = nextPageImageUrl;
                    ((DataControlImageButton)control3).AlternateText = HttpUtility.HtmlDecode(pagerSettings.NextPageText);
                    ((DataControlImageButton)control3).EnableCallback(BuildCallbackArgument(PageIndex + 1));
                }
                else
                {
                    control3 = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control3).Text = pagerSettings.NextPageText;
                    ((DataControlPagerLinkButton)control3).EnableCallback(BuildCallbackArgument(PageIndex + 1));
                }
                control3.CommandName = "Page";
                control3.CommandArgument = "Next";
                cell3.Controls.Add((Control)control3);
            }
            if (addFirstLastPageButtons && !isLastPage)
            {
                IButtonControl control4;
                TableCell cell4 = new TableCell();
                row.Cells.Add(cell4);
                string lastPageImageUrl = pagerSettings.LastPageImageUrl;
                if (lastPageImageUrl.Length > 0)
                {
                    control4 = new DataControlImageButton(this);
                    ((DataControlImageButton)control4).ImageUrl = lastPageImageUrl;
                    ((DataControlImageButton)control4).AlternateText = HttpUtility.HtmlDecode(pagerSettings.LastPageText);
                    ((DataControlImageButton)control4).EnableCallback(BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                else
                {
                    control4 = new DataControlPagerLinkButton(this);
                    ((DataControlPagerLinkButton)control4).Text = pagerSettings.LastPageText;
                    ((DataControlPagerLinkButton)control4).EnableCallback(BuildCallbackArgument(pagedDataSource.PageCount - 1));
                }
                control4.CommandName = "Page";
                control4.CommandArgument = "Last";
                cell4.Controls.Add((Control)control4);
            }
        }