http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=B12283DE-DB20-4322-ACCC-12724442808A
下面的这个例子提供了DataGrid的分页功能。aspx代码和Cohe Behind代码分别如下,注意更改数据录连接字符串。结果如下:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="DataGridPaging.aspx.vb" Inherits="DataGridPaging"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" runat="server">
<asp:datagrid id="MyDataGrid" runat="server" AlternatingItemStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana" CellSpacing="0"
CellPadding="3" GridLines="Both" BorderWidth="1" BorderColor="black"
OnPageIndexChanged="MyDataGrid_Page" PagerStyle-HorizontalAlign="Right"
PagerStyle-Mode="NumericPages" PageSize="5" AllowPaging="True">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
<PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<p style="font-size:9pt">
<asp:label id="lblPageCount" runat="server"></asp:label>
<asp:label id="lblCurrentIndex" runat="server"></asp:label>
<asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server"
Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="0">
</asp:linkbutton>
<asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server"
Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="prev">
</asp:linkbutton>
<asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server"
Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="next">
</asp:linkbutton>
<asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server"
Font-Name="verdana" Font-size="8pt" ForeColor="navy" CommandArgument="last">
</asp:linkbutton>
</p>
</form>
</body>
</HTML>
namespace Tianyu
{
namespace WebControl
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public delegate void BindDataDelegate();
public abstract class dgNavigation : System.Web.UI.UserControl
{
public BindDataDelegate BindData1;
private DataGrid _dg;//目标Grid
private bool _autohidden = true;//自动隐藏
private int _pagesize = 10;//缺省分页数
protected System.Web.UI.WebControls.Label LabelMsg;
protected System.Web.UI.WebControls.Button btnNavLast;
protected System.Web.UI.WebControls.Button btnNavNext;
protected System.Web.UI.WebControls.Button btnNavPrevious;
protected System.Web.UI.WebControls.Button btnNavFirst;
protected System.Web.UI.WebControls.TextBox tbPage;
protected System.Web.UI.WebControls.Button btnNavGo;
protected System.Web.UI.WebControls.Label LabelMsg2;
protected System.Web.UI.WebControls.Panel divPanel;//每页显示行数
private int _itemcount = 0;//数据总数
private int _dispStyle = 1;//显示风格
public DataGrid Target
{
get { return _dg; }
set { _dg = value;}
}
public bool AutoHidden
{
get { return _autohidden; }
set { _autohidden = value;}
}
public int PageSize
{
get { return _pagesize; }
set { _pagesize = value;}
}
public int ItemCount
{
get { return _itemcount; }
set { _itemcount = value;}
}
private void Page_Load(object sender, System.EventArgs e)
{
}
/// <summary>
/// 设置导航对象的目标DataGrid以及针对DataGrid的数据邦定事件
/// </summary>
/// <param name="adg">DataGrid对象</param>
/// <param name="aBindData1">数据邦定事件</param>
public void SetTarget(DataGrid adg, BindDataDelegate aBindData1)
{
_dg = adg;
//BindData1 = new BindDataDelegate(aBindData1);
BindData1 = aBindData1;
btnNavFirst.Click += new System.EventHandler(this.NavigationButtonClick);
btnNavPrevious.Click += new System.EventHandler(this.NavigationButtonClick);
btnNavNext.Click += new System.EventHandler(this.NavigationButtonClick);
btnNavLast.Click += new System.EventHandler(this.NavigationButtonClick);
btnNavGo.Click += new System.EventHandler(this.NavigationButtonClick);
_dg.DataBinding += new System.EventHandler(this.zxDataBinding);
}
/// <summary>
/// 设置DataGrid样式
/// </summary>
/// <param name="aPageSize">每页显示行数</param>
/// <param name="aAutoHidden">是否自动隐藏</param>
/// <param name="aDispStyle">显示风格,1:标准型,2:精简型</param>
public void SetStyle(int aPageSize, bool aAutoHidden, int aDispStyle)
{
_pagesize = aPageSize;
_autohidden = aAutoHidden;//aAutoHidden;所有DataGrid都设置成自动隐藏
_dispStyle = aDispStyle;
divPanel.Visible = !aAutoHidden;
_dg.AllowPaging = true;
_dg.AllowCustomPaging = false;
_dg.PagerStyle.Visible = false;
_dg.PageSize = _pagesize;
_dg.PagerStyle.Mode = PagerMode.NumericPages;
_dg.PagerStyle.HorizontalAlign = HorizontalAlign.Right;
}
public void SetStyle(int aPageSize, bool aAutoHidden)
{
SetStyle(aPageSize, aAutoHidden, 1);
}
public void SetStyle(int aPageSize)
{
SetStyle(aPageSize, true);
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// 设计器支持所需的方法 - 不要使用
/// 代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
/// <summary>
/// 导航按钮点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void NavigationButtonClick(object sender, System.EventArgs e)
{
string direction = ((Button)sender).CommandName;
switch (direction.ToUpper())
{
case "FIRST" :
_dg.CurrentPageIndex = 0;
break;
case "PREVIOUS" :
_dg.CurrentPageIndex =
Math.Max(_dg.CurrentPageIndex -1, 0);
break;
case "NEXT" :
_dg.CurrentPageIndex =
Math.Min(_dg.CurrentPageIndex +
评论0