コード例 #1
0
        /// <summary>建立子控件</summary>
        protected override void CreateChildControls()
        {
            // 当且仅当总记录数TotalRowCount准备好之后才创建子控件
            if (TotalRowCount <= 0)
            {
                return;
            }

            Controls.Clear();

            IPagedDataSource pagedDataSource = this;

            PagerSettings pagerSettings = PagerSettings;

            if (PagerTemplate != null)
            {
                // 分页模版输出
                DataPagerItem item = new DataPagerItem();
                PagerTemplate.InstantiateIn(item);

                Controls.Add(item);

                // 必须在加入Controls后再绑定,否则会因为没有关联Page而失败
                // 每次完成创建子控件后马上绑定
                item.DataItem = this;
                item.DataBind();
                item.DataItem = null;
            }
            else
            {
                // 分页控件输出
                Table    child = new Table();
                TableRow row2  = new TableRow();
                switch (pagerSettings.Mode)
                {
                case PagerButtons.NextPrevious:
                    CreateNextPrevPager(row2, pagedDataSource, false);
                    break;

                case PagerButtons.Numeric:
                    CreateNumericPager(row2, pagedDataSource, false);
                    break;

                case PagerButtons.NextPreviousFirstLast:
                    CreateNextPrevPager(row2, pagedDataSource, true);
                    break;

                case PagerButtons.NumericFirstLast:
                    CreateNumericPager(row2, pagedDataSource, true);
                    break;
                }

                child.Rows.Add(row2);
                Controls.Add(child);
            }
        }
コード例 #2
0
        private void CreatePager(RepeaterItem Pagination, int PagerIndex)
        {
            if (PagerTemplate != null)
            {
                PagerTemplate.InstantiateIn(Pagination);
            }
            else if (this.PageCount > 1)
            {
                Control pagerRoot = Pagination;
                if (!string.IsNullOrEmpty(PagerSettings.FirstPagerContainer) && PagerIndex == 0)
                {
                    if (!PagerSettings.UseQueryString)
                    {
                        throw (new HttpException("QueryString pagination is required to create pager controls"));
                    }
                    pagerRoot = GetReferencedControl(PagerSettings.FirstPagerContainer);
                }
                else if (!string.IsNullOrEmpty(PagerSettings.SecondPagerContainer) && PagerIndex > 0)
                {
                    if (!PagerSettings.UseQueryString)
                    {
                        throw (new HttpException("QueryString pagination is required to create pager controls"));
                    }
                    pagerRoot = GetReferencedControl(PagerSettings.SecondPagerContainer);
                }


                if (!string.IsNullOrEmpty(PagerSettings.ContainerCssClass))
                {
                    System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
                    div.Attributes["class"] = PagerSettings.ContainerCssClass;
                    pagerRoot.Controls.Add(div);
                    pagerRoot = div;
                }


                switch (this.PagerSettings.Mode)
                {
                case PagerButtons.Numeric:
                    CreateNumericPager(pagerRoot);
                    break;

                case PagerButtons.NumericFirstLast:
                    CreateNumericPager(pagerRoot);

                    if (this.PageIndex > 0)
                    {
                        pagerRoot.Controls.AddAt(0, CreateSeparator());
                        pagerRoot.Controls.AddAt(0, CreateFirstButton());
                    }

                    if (this.PageIndex < (this.PageCount - 1))
                    {
                        pagerRoot.Controls.Add(CreateSeparator());
                        pagerRoot.Controls.Add(CreateLastButton());
                    }
                    break;

                case PagerButtons.NumericNextPrevious:
                    CreateNumericPager(pagerRoot);

                    if (this.PageIndex > 0)
                    {
                        pagerRoot.Controls.AddAt(0, CreateSeparator());
                        pagerRoot.Controls.AddAt(0, CreatePreviousButton());
                    }

                    if (this.PageIndex < (this.PageCount - 1))
                    {
                        if (pagerRoot.Controls.Count > 0)
                        {
                            pagerRoot.Controls.Add(CreateSeparator());
                        }
                        pagerRoot.Controls.Add(CreateNextButton());
                    }
                    break;

                case PagerButtons.NextPrevious:
                    if (this.PageIndex > 0)
                    {
                        pagerRoot.Controls.Add(CreatePreviousButton());
                    }

                    if (this.PageIndex < (this.PageCount - 1))
                    {
                        if (pagerRoot.Controls.Count > 0)
                        {
                            pagerRoot.Controls.Add(CreateSeparator());
                        }
                        pagerRoot.Controls.Add(CreateNextButton());
                    }
                    break;

                case PagerButtons.NextPreviousFirstLast:
                    if (this.PageIndex > 0)
                    {
                        pagerRoot.Controls.Add(CreateFirstButton());
                        pagerRoot.Controls.Add(CreateSeparator());
                        pagerRoot.Controls.Add(CreatePreviousButton());
                    }

                    if (this.PageIndex < (this.PageCount - 1))
                    {
                        if (pagerRoot.Controls.Count > 0)
                        {
                            pagerRoot.Controls.Add(CreateSeparator());
                        }
                        pagerRoot.Controls.Add(CreateNextButton());
                        pagerRoot.Controls.Add(CreateSeparator());
                        pagerRoot.Controls.Add(CreateLastButton());
                    }
                    break;

                case PagerButtons.NumericNextPreviousFirstLast:
                    CreateNumericPager(pagerRoot);

                    if (this.PageIndex > 0)
                    {
                        pagerRoot.Controls.AddAt(0, CreateSeparator());
                        pagerRoot.Controls.AddAt(0, CreatePreviousButton());
                        pagerRoot.Controls.AddAt(0, CreateSeparator());
                        pagerRoot.Controls.AddAt(0, CreateFirstButton());
                    }

                    if (this.PageIndex < (this.PageCount - 1))
                    {
                        pagerRoot.Controls.Add(CreateSeparator());
                        pagerRoot.Controls.Add(CreateNextButton());
                        pagerRoot.Controls.Add(CreateSeparator());
                        pagerRoot.Controls.Add(CreateLastButton());
                    }
                    break;
                }
            }
        }