SQL Server 2000DBAWindows 2003.NET 1.1Windows 2000Windows XP中级开发Visual StudioSQL ServerSQLWindows.NETASP.NETC#
一个方便的数据网格分页控件






3.67/5 (5投票s)
2005年5月21日

44333

802
它使用起来非常简单,是最方便的 DataGrid 分页控件。
引言
上次,我提交了一个 Web 控件来配置网站中的数据连接在 web.config 中,它简单方便。这次我们来做一个最方便的 DataGrid 分页控件。步骤如下:
- 将一个
Pager
和一个PagerExt
Web 控件拖放到网页中。 - 将
ControlID
属性设置为DataGrid
的 ID,或者在代码中设置,如下所示:override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); this.Pager1.ControlID = this.DataGrid1.ID; this.PagerExt1.ControlID = this.DataGrid1.ID; }
- 编写数据绑定函数
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>"); } }
- 编写事件代码
private void Pager1_PagerClick(object sender, System.EventArgs e) { this.BindGrid(); } private void PagerExt1_PageGoClick(object sender, System.EventArgs e) { this.BindGrid(); }
测试你的 DataGrid 分页控件
如何操作
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;
}
}