65.9K
CodeProject is changing. Read more.
Home

A convenient DataGrid Pager Control

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (5 votes)

May 21, 2005

viewsIcon

43865

downloadIcon

802

It's very easy to use and the most conventient DataGrid pager control.

Introduction

Last time, I submitted a web control to configure the data connection in web.config for a web site, it was easy and convenient. This time let's us go for a most convenient DataGrid Pager control. The steps involved are as follows:

  1. Drag and drop a Pager and a PagerExt web control into a web page.
  2. Set the property ControlID to DataGrid's ID or set it in the code as shown below:

    override protected void OnInit(EventArgs e)
    {
        InitializeComponent();
        base.OnInit(e);
    
        this.Pager1.ControlID = this.DataGrid1.ID;
        this.PagerExt1.ControlID = this.DataGrid1.ID;
    }
  3. Write a data bind function:
    private void BindGrid()
    {
        try
        {
            this.DataGrid1.DataSource = 
                        obj.GetDataSet(this.TextBox1.Text);
            this.DataGrid1.DataBind();
            
            // this is important for the show current 
            // page number correctly.
            this.PagerExt1.Refresh(); 
        }
        catch
        {
            this.Page.RegisterStartupScript
            ("","<script>alert('Please check the sql " + 
                           "cmd or wbe.config');</script>");
        }
    }
  4. Events coding:
    private void Pager1_PagerClick(object sender, 
                                     System.EventArgs e)
    {
        this.BindGrid();
    }
    private void PagerExt1_PageGoClick(object sender, 
                                     System.EventArgs e)
    {
        this.BindGrid();
    }

Testing your DataGrid pager control

How to do

private void Pager_Click(object sender, EventArgs e)
{
    if (this.Page.FindControl(this.ControlID) == null)
        return;

    String arg = ((LinkButton)sender).CommandArgument;

    try
    {
      switch(arg)
      {
        case "First":
           ((System.Web.UI.WebControls.DataGrid)this.
                Page.FindControl(this.ControlID)).CurrentPageIndex = 0;
            this.OnPagerCmd(e);
            break;
        case "Prev":
            if (((System.Web.UI.WebControls.DataGrid)this.
                      Page.FindControl(this.ControlID)).CurrentPageIndex > 0)
               ((System.Web.UI.WebControls.DataGrid)this.Page.
                               FindControl(this.ControlID)).CurrentPageIndex --;
            this.OnPagerCmd(e);
            break;
        case "Next":
            if (((System.Web.UI.WebControls.DataGrid)this.
                         Page.FindControl(this.ControlID)).CurrentPageIndex < 
                (((System.Web.UI.WebControls.DataGrid)this.
                               Page.FindControl(this.ControlID)).PageCount - 1))
                ((System.Web.UI.WebControls.DataGrid)this.
                          Page.FindControl(this.ControlID)).CurrentPageIndex ++;
            this.OnPagerCmd(e);
            break;
        case "Last":
            ((System.Web.UI.WebControls.DataGrid)this.
               Page.FindControl(this.ControlID)).CurrentPageIndex = 
                              ((System.Web.UI.WebControls.DataGrid)this.
                                Page.FindControl(this.ControlID)).PageCount - 1;
            this.OnPagerCmd(e);
            break;
      }
    }
    catch
    {
        return;
    }
}