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
        }
示例#4
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);
     }
 }
示例#5
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);
            }
        }
        /// <summary>
        /// 将文本或控件添加到单元格的控件集合中。
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="cellType"></param>
        /// <param name="rowState"></param>
        /// <param name="rowIndex"></param>
        public virtual void InitializeCell(DataControlFieldCellEx cell, DataControlCellType cellType, DataGridViewRowState rowState, int rowIndex)
        {
            WebControl control = null;
            string sortExpression = string.Empty, headerText = string.Empty;
            ImageButton button = null;

            switch (cellType)
            {
                case DataControlCellType.Header:
                    {
                        control = null;
                        sortExpression = this.SortExpression;
                        bool bSort = this.sortingEnabled && !string.IsNullOrEmpty(sortExpression);
                        string headerImageUrl = this.HeaderImageUrl;
                        headerText = this.HeaderText;
                        if (string.IsNullOrEmpty(headerImageUrl))
                        {
                            if (bSort)
                            {
                                LinkButton link = null;
                                IPostBackContainer container = this.control as IPostBackContainer;
                                if (container != null)
                                {
                                    link = new DataControlLinkButton(container);
                                    ((DataControlLinkButton)link).EnableCallback(null);
                                }
                                else
                                    link = new LinkButton();
                                link.Text = headerText;
                                link.CommandName = "Sort";
                                link.CommandArgument = sortExpression;

                                if (!(link is DataControlLinkButton))
                                    link.CausesValidation = false;
                                control = link;
                            }
                            else
                            {
                                if (string.IsNullOrEmpty(headerText))
                                    headerText = "&nbsp;";
                                cell.Text = headerText;
                            }
                            goto Label_015C;
                        }
                        if (!bSort && !string.IsNullOrEmpty(headerImageUrl))
                        {
                            Image image = new Image();
                            image.ImageUrl = headerImageUrl;
                            control = image;
                            image.AlternateText = headerText;
                            goto Label_015C;
                        }

                        IPostBackContainer contrainer = this.control as IPostBackContainer;
                        if (contrainer == null)
                        {
                            button = new ImageButton();
                            break;
                        }
                        button = new DataControlImageButton(contrainer);
                        ((DataControlImageButton)button).EnableCallback(null);
                    }
                    break;
                case DataControlCellType.Footer:
                    {
                        string footerText = this.FooterText;
                        if (string.IsNullOrEmpty(footerText))
                            footerText = "&nbsp;";
                        cell.Text = footerText;
                    }
                    return;
                default:
                    return;
            }
            button.ImageUrl = this.HeaderImageUrl;
            button.CommandName = "Sort";
            button.CommandArgument = sortExpression;
            if (!(button is DataControlImageButton))
                button.CausesValidation = false;
            button.AlternateText = headerText;
            control = button;

            Label_015C:
            if (control != null)
                cell.Controls.Add(control);
        }