ASP.NET: GridView, Pager Setting Customized with DropDownList

GridView Pager Setting Customized with DropDownList – Start

.ASPX file:
    <form id="form1" runat="server">

GridView PagerTemplate Example


      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource"   
        autogeneratecolumns="true"
        allowpaging="true"
        ondatabound="CustomersGridView_DataBound"  
        runat="server">

        <pagerstyle forecolor="Blue"
          backcolor="LightBlue"/>

        

          <table width="100%">                    
                                      <td style="width:70%">                <asp:label id="MessageLabel"                  forecolor="Blue"                  text="Select a page:"                   runat="server"/>                <asp:dropdownlist id="PageDropDownList"                  autopostback="true"                  onselectedindexchanged="PageDropDownList_SelectedIndexChanged"                   runat="server"/>                               <td style="width:70%; text-align:right">                <asp:label id="CurrentPageLabel"                  forecolor="Blue"                  runat="server"/>                                              
          

         

      

      
      
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring=""
        runat="server">
      

    
 
.ASPX.CS files:
protected void PageDropDownList_SelectedIndexChanged(Object sender, EventArgs e)
  {

    // Retrieve the pager row.
    GridViewRow pagerRow = CustomersGridView.BottomPagerRow;

    // Retrieve the PageDropDownList DropDownList from the bottom pager row.
    DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");

    // Set the PageIndex property to display that page selected by the user.
    CustomersGridView.PageIndex = pageList.SelectedIndex;

  }

  protected void CustomersGridView_DataBound(Object sender, EventArgs e)
  {

    // Retrieve the pager row.
    GridViewRow pagerRow = CustomersGridView.BottomPagerRow;

    // Retrieve the DropDownList and Label controls from the row.
    DropDownList pageList = (DropDownList)pagerRow.Cells[0].FindControl("PageDropDownList");
    Label pageLabel = (Label)pagerRow.Cells[0].FindControl("CurrentPageLabel");

    if(pageList != null)
    {

      // Create the values for the DropDownList control based on 
      // the  total number of pages required to display the data
      // source.
      for(int i=0; i<CustomersGridView.PageCount; i++)
      {

        // Create a ListItem object to represent a page.
        int pageNumber = i + 1;
        ListItem item = new ListItem(pageNumber.ToString());         

        // If the ListItem object matches the currently selected
        // page, flag the ListItem object as being selected. Because
        // the DropDownList control is recreated each time the pager
        // row gets created, this will persist the selected item in
        // the DropDownList control.   
        if(i==CustomersGridView.PageIndex)
        {
          item.Selected = true;
        }

        // Add the ListItem object to the Items collection of the 
        // DropDownList.
        pageList.Items.Add(item);

      }

    }

    if(pageLabel != null)
    {

      // Calculate the current page number.
      int currentPage = CustomersGridView.PageIndex + 1;     

      // Update the Label control with the current page information.
      pageLabel.Text = "Page " + currentPage.ToString() +
        " of " + CustomersGridView.PageCount.ToString();

    }    

  }

GridView Pager Setting Customized with DropDownList - End


Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s