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:
- Drag and drop a
Pager
and a PagerExt
web control into a web page.
- 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;
}
- Write a data bind function:
private void BindGrid()
{
try
{
this.DataGrid1.DataSource =
obj.GetDataSet(this.TextBox1.Text);
this.DataGrid1.DataBind();
this.PagerExt1.Refresh();
}
catch
{
this.Page.RegisterStartupScript
("","<script>alert('Please check the sql " +
"cmd or wbe.config');</script>");
}
}
- 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;
}
}