SQL Server 2000DBAWindows 2003.NET 1.1Windows 2000Windows XPIntermediateDevVisual StudioSQL ServerSQLWindows.NETASP.NETC#
A convenient DataGrid Pager Control






3.67/5 (5 votes)
May 21, 2005

43865

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:
- Drag and drop a
Pager
and aPagerExt
web control into a web page. - Set the property
ControlID
toDataGrid
'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 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>"); } }
- 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;
}
}