//this function happens when a button in the datapager is pressed
    protected void subPager(object sender, DataPagerCommandEventArgs e)
    {
        e.NewMaximumRows = e.Item.Pager.MaximumRows;

        //switch statement that takes the button pressed by the user as the parameter
        switch (e.CommandName)
        {
        case "Next":
            if (e.Item.Pager.StartRowIndex + 3 < e.TotalRowCount)
            {
                e.NewStartRowIndex = e.Item.Pager.StartRowIndex + 3;
                //_subRebind();
            }

            break;

        case "Prev":
            if (e.Item.Pager.StartRowIndex - 3 >= 0)
            {
                e.NewStartRowIndex = e.Item.Pager.StartRowIndex - 3;
                //_subRebind();
            }
            break;
        }
    }
Beispiel #2
0
    /// <summary>
    /// 按下PagerTemplate樣板中的按鈕(第一頁/上一頁/下一頁/最末頁)後會觸發;
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void TemplatePagerField_OnPagerCommand(object sender, DataPagerCommandEventArgs e)
    {
        logger.Debug("TemplatePagerField_OnPagerCommand");


        //取得總筆數;
        TotalRowCount = _DataPager.TotalRowCount;

        //取得PageSize;
        PageSize = _DataPager.PageSize;

        //取得CurrentIndex;
        iCurrentIndex = e.Item.Pager.StartRowIndex;

        //取得SortKey, SortDirection
        ListViewSortKey       = _ListView.SortExpression;
        ListViewSortDirection = _ListView.SortDirection;

        switch (e.CommandName)
        {
        case "FirstPage":
            //取得第一頁;
            PageNo = 0;
            //導至新的Current頁面;
            e.NewStartRowIndex = 0;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "PreviousPage":
            //取得Previous頁面;
            PageNo = (iCurrentIndex / PageSize) - 1;
            //導至新的Current頁面;
            e.NewStartRowIndex = PageNo * PageSize;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "NextPage":
            //取得Next頁面;
            PageNo = (iCurrentIndex / PageSize) + 1;
            //導至新的Current頁面;
            e.NewStartRowIndex = PageNo * PageSize;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "LastPage":
            //取得最末頁(筆數可整除每頁筆數, 總頁數減1. 反之, 不減1);
            if ((TotalRowCount % PageSize) == 0)
            {
                PageNo = (TotalRowCount / PageSize) - 1;
            }
            else
            {
                PageNo = (TotalRowCount / PageSize);
            }
            //導至新的Current頁面;
            e.NewStartRowIndex = PageNo * PageSize;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;
        }
    }
//    protected void Button3_Click(object sender, EventArgs e)
//    {


//        string newWin =    "window.open('" + txtRelatedLinksnew.Text.Trim() + "');";
////
// //       ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);

//        ClientScript.RegisterStartupScript(this.GetType(), "pop", String.Format("<script>window.open('{0}');</script>", "http://" + txtRelatedLinksnew.Text.Trim()));


//    }
    protected void PagerCommand(object sender, DataPagerCommandEventArgs e)
    {
        switch (e.CommandName)
        {
        case "Next":
            //  guard against going off the end of the list
            e.NewStartRowIndex = Math.Min(e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows, e.Item.Pager.TotalRowCount - e.Item.Pager.MaximumRows);
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "Previous":
            //  guard against going off the begining of the list
            e.NewStartRowIndex = Math.Max(0, e.Item.Pager.StartRowIndex - e.Item.Pager.MaximumRows);
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "Last":
            //  the
            e.NewStartRowIndex = e.Item.Pager.TotalRowCount - e.Item.Pager.MaximumRows;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "First":
        default:
            e.NewStartRowIndex = 0;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;
        }
    }
    protected void PagerCommand(object sender, DataPagerCommandEventArgs e)
    {
        // DataPager pager = e.Item.Pager;
        // int newStartRowIndex;
        switch (e.CommandName)
        {
        //case "Next":
        //    newStartRowIndex = pager.StartRowIndex + pager.MaximumRows > pager.TotalRowCount ? pager.StartRowIndex : pager.StartRowIndex + pager.MaximumRows;
        //    break;
        //case "Previous":
        //    newStartRowIndex = pager.StartRowIndex - pager.MaximumRows < 0 ? pager.StartRowIndex : pager.StartRowIndex - pager.MaximumRows;
        //    break;
        //case "Last":
        //    newStartRowIndex = (pager.TotalRowCount / pager.MaximumRows) * pager.MaximumRows;
        //    break;
        //case "First":
        //default:
        //    newStartRowIndex = 0;
        //    break;

        case "Next":
            //  guard against going off the end of the list
            e.NewStartRowIndex = Math.Min(e.Item.Pager.StartRowIndex + e.Item.Pager.MaximumRows, e.Item.Pager.TotalRowCount - e.Item.Pager.MaximumRows);
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "Previous":
            //  guard against going off the begining of the list
            e.NewStartRowIndex = Math.Max(0, e.Item.Pager.StartRowIndex - e.Item.Pager.MaximumRows);
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "Last":
            //  the
            e.NewStartRowIndex = e.Item.Pager.TotalRowCount - e.Item.Pager.MaximumRows;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;

        case "First":
        default:
            e.NewStartRowIndex = 0;
            e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            break;
        }

        //  e.NewMaximumRows = e.Item.Pager.MaximumRows;
        // e.NewStartRowIndex = newStartRowIndex;
    }
        protected void TemplateGoTo_OnPagerCommand(object sender, DataPagerCommandEventArgs e)
        {
            // Since there is only one Button control, we don't need
            // to use "switch" or "if".

            // Fetch the new pager number from the TextBox tbPagerNumber.
            int iNewPage = Convert.ToInt32(((TextBox)e.Item.FindControl("tbPageNumber")).Text);

            // Calculate the new index of the first row to display.
            int iNewIndex = e.Item.Pager.PageSize * (iNewPage - 1);

            // The new row index cannot be bigger than total row count
            if (iNewIndex <= e.TotalRowCount)
            {
                e.NewStartRowIndex = iNewIndex;
                e.NewMaximumRows   = e.Item.Pager.MaximumRows;
            }
        }
        /// <summary>
        ///     The template pager field_ on pager command.
        /// </summary>
        /// <param name="sender">
        ///     The sender.
        /// </param>
        /// <param name="e">
        ///     The e.
        /// </param>
        protected void TemplatePagerField_OnPagerCommand(object sender, DataPagerCommandEventArgs e)
        {
            // Check which button raised the event
            switch (e.CommandName)
            {
            case "ShowAll":
                if (e.Item.Pager.PageSize == Int32.MaxValue)
                {
                    e.Item.Pager.SetPageProperties(0, CategoryPageSize, true);
                }
                else
                {
                    e.Item.Pager.SetPageProperties(0, Int32.MaxValue, true);
                }

                break;

            default:
                break;
            }
        }
        protected void TemplateNextPrevious_OnPagerCommand(object sender, DataPagerCommandEventArgs e)
        {
            // Check which LinkButton control raised the event.

            // MaximumRows: The maximum number of records that are displayed
            // for each page of data.

            // StartRowIndex: The index of the first record that is displayed
            // on a page of data.

            // TotalRowCount: The total number of records that are available
            // in the underlying data source.

            switch (e.CommandName)
            {
            // "First" is clicked.
            case "First":
                // In this sample, the maximum number of records on
                // each page is 10, which is the default page size.

                // The first page shows the first 10 rows of the data
                // source, whose row index start from 0.
                e.NewStartRowIndex = 0;
                e.NewMaximumRows   = e.Item.Pager.MaximumRows;

                break;

            // "Previous" is clicked.
            case "Previous":
                // The previous page shows the following 10 rows of
                // the current page.
                e.NewStartRowIndex = e.Item.Pager.StartRowIndex - e.Item.Pager.PageSize;
                e.NewMaximumRows   = e.Item.Pager.MaximumRows;

                break;

            // "Next" is clicked.
            case "Next":
                // The next page shows 10 rows which start from the last
                // row in current page.
                int iNewIndex = e.Item.Pager.StartRowIndex + e.Item.Pager.PageSize;
                // The new index of the first row to display cannot
                // be bigger than total row count
                if (iNewIndex <= e.TotalRowCount)
                {
                    e.NewStartRowIndex = iNewIndex;
                    e.NewMaximumRows   = e.Item.Pager.MaximumRows;
                }

                break;

            // "Last" is clicked.
            case "Last":
                // The last page shows the last rows of the data source,
                // which are the remainders after total number is
                // divided by page size.
                e.NewStartRowIndex = e.TotalRowCount - e.TotalRowCount % e.Item.Pager.PageSize;
                e.NewMaximumRows   = e.Item.Pager.MaximumRows;

                break;
            }
        }