コード例 #1
0
        /// <summary>
        /// Reperimento contesto di paginazione corrente
        /// </summary>
        /// <returns></returns>
        public PagingContext GetPagingContext()
        {
            PagingContext pagingContext = this.ViewState["PagingContext"] as PagingContext;

            if (pagingContext == null)
            {
                pagingContext           = new PagingContext(1);
                pagingContext.PageCount = 1;
            }

            return(pagingContext);
        }
コード例 #2
0
        /// <summary>
        /// Aggiornamento dei controlli di paginazione
        /// </summary>
        /// <param name="pagingContext"></param>
        private void RefreshControls(PagingContext pagingContext)
        {
            // Aggiornamento visibilità pulsanti di navigazione semplice, sempre presenti
            this.RefreshVisibililitySimpleButtons(pagingContext);

            if (this.PagingMode.Equals(PagingModeEnum.Simple))
            {
                // In modalità semplice, i controlli di paginazione avanzati vengono nascosti
                this.HideControlsAdvancedMode();

                this.ShowPagingDescription(true);

                // Aggiornamento descrizione di pagina corrente / pagine totali
                this.RefreshPagingDescription(pagingContext);
            }
            else
            {
                this.ShowPagingDescription(false);

                this.RefreshControlsAdvancedMode(pagingContext);
            }
        }
コード例 #3
0
        /// <summary>
        /// Azione di spostamento pagina
        /// </summary>
        /// <param name="pageNumber"></param>
        private void PerformPageActionButtonClick(int pageNumber)
        {
            PagingContext pagingContext = this.GetPagingContext();

            pagingContext.PageNumber = pageNumber;

            if (this.OnPageChanged != null)
            {
                PageChangedEventArgs args = new PageChangedEventArgs(pagingContext);

                // Invio evento di paginazione
                this.OnPageChanged(this, args);

                // aggiornato paging context dagli eventargs
                pagingContext = args.PagingContext;
            }

            // Impostazione oggetto paginazione
            this.SetPagingContext(pagingContext);

            // Aggiornamento dei controlli di paginazione
            this.RefreshControls(pagingContext);
        }
コード例 #4
0
 /// <summary>
 /// Impostazione contesto di paginazione corrente
 /// </summary>
 /// <param name="pagingContext"></param>
 private void SetPagingContext(PagingContext pagingContext)
 {
     this.ViewState["PagingContext"] = pagingContext;
 }
コード例 #5
0
        /// <summary>
        /// Aggiornamento paginazione
        /// </summary>
        /// <param name="parentPageLink"></param>
        /// <param name="additionalAttributes"></param>
        /// <param name="pagingContext"></param>
        public void RefreshPaging(PagingContext pagingContext)
        {
            this.SetPagingContext(pagingContext);

            this.RefreshControls();
        }
コード例 #6
0
        /// <summary>
        /// Aggiornamento controlli di paginazione in modalità avanzata
        /// </summary>
        /// <param name="pagingContext"></param>
        private void RefreshControlsAdvancedMode(PagingContext pagingContext)
        {
            int restOf = (pagingContext.PageNumber % PAGE_RANGE_NUMBER);

            int startPage = 0;

            if (restOf.Equals(0))
            {
                restOf = pagingContext.PageNumber;
                if (pagingContext.PageNumber != 10)
                {
                    restOf -= (restOf - PAGE_RANGE_NUMBER);
                }
            }

            startPage = (pagingContext.PageNumber - restOf) + 1;

            // Visualizzazione pulsante gruppo precedente
            this.SetVisibilityPagingButton(this.btnPreviousGroup, (startPage > PAGE_RANGE_NUMBER));
            if (this.btnPreviousGroup.Visible)
            {
                this.btnPreviousGroup.Attributes.Add("title", "Vai a pagina " + (startPage - 1).ToString() + " e precedenti");
            }

            int lastPage = startPage;

            for (int i = 0; i < 10; i++)
            {
                // Pagina corrente
                int currentPage = (startPage + i);

                Button btnPageButton = (Button)this.FindControl("btn_" + (i + 1).ToString());

                // Visualizzazione pulsante corrente
                this.SetVisibilityPagingButton(btnPageButton, (currentPage <= pagingContext.PageCount));

                if (btnPageButton.Visible)
                {
                    // Impostazione numero pagina, solamente se visibile
                    btnPageButton.Text = currentPage.ToString();

                    // Impostazione stili pulsante
                    if (!currentPage.Equals(pagingContext.PageNumber))
                    {
                        btnPageButton.Attributes.Add("title", "Vai a pagina " + currentPage.ToString());
                        btnPageButton.Attributes.Remove("class");
                    }
                    else
                    {
                        //btnPageButton.Attributes.Remove("title");
                        btnPageButton.Attributes.Add("title", "Pagina corrente");
                        btnPageButton.Attributes.Add("class", "currentPage");
                    }
                }
                else
                {
                    btnPageButton.Text = string.Empty;
                }

                lastPage = currentPage;
            }

            // Visualizzazione pulsante gruppo successivo
            this.SetVisibilityPagingButton(this.btnNextGroup, (lastPage < pagingContext.PageCount));
            if (this.btnNextGroup.Visible)
            {
                this.btnNextGroup.Attributes.Add("title", "Vai a pagina " + (lastPage + 1).ToString() + " e successive");
            }
        }
コード例 #7
0
        /// <summary>
        /// Aggiornamento descrizione pagina corrente / pagina totale
        /// </summary>
        /// <param name="pagingContext"></param>
        private void RefreshPagingDescription(PagingContext pagingContext)
        {
            string pagingDescription = "pagina " + pagingContext.PageNumber.ToString() + " di " + pagingContext.PageCount.ToString();

            this.lblPagingDescription.Text = pagingDescription;
        }
コード例 #8
0
 /// <summary>
 /// Aggiornamento visibilità pulsanti di navigazione semplice
 /// </summary>
 /// <param name="pagingContext"></param>
 private void RefreshVisibililitySimpleButtons(PagingContext pagingContext)
 {
     this.SetVisibilityPagingButton(this.btnMovePrevious, (pagingContext.PageNumber > 1));
     this.SetVisibilityPagingButton(this.btnMoveNext, (pagingContext.PageNumber < pagingContext.PageCount));
 }
コード例 #9
0
        /// <summary>
        /// Aggiornamento dei controlli di paginazione
        /// </summary>
        private void RefreshControls()
        {
            PagingContext pagingContext = this.GetPagingContext();

            this.RefreshControls(pagingContext);
        }
コード例 #10
0
 public PageChangedEventArgs(PagingContext pagingContext)
 {
     this._pagingContext = pagingContext;
 }