" />
当前位置:首页>网络学院>程序开发>ASP.NET教程>文章内容

ASP.NET实例:增强 GridView 控件的功能

[ 来源:www.it55.com | 作者: | 时间:2007-07-15 | 收藏 | 推荐 ] 【

还记得雅虎的XX(不好意思,忘记姓甚名谁了)有一篇演讲,其中一个字就是“懒”。咱写代码的,不懒点儿还真是吃不消,尤其是现在这样要命的天气~~。

相信大家都多少有抱怨GridView控件的功能吧,咱在这就不多说了,贴出代码是最重要的。

该类增强了微软的GridView的功能,增加了“首页”、“上页”、“下页”、“尾页”按钮,方便大家使用,翻页事件也已经添加好,在相关页面只要添加以下代码就可以了:

protected void Page_Init(object sender, EventArgs e) {
Lyout.Web.Extension.GridView.RegisterEvents(listTable, new Lyout.Web.Extension.GridViewDataBind(BindData));
}

记住必须在 Page_Init 里面。其中 listTable 为GridView控件的ID,BindData是自己绑定数据的方法的名称。

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Lyout.Web.Extension {
/**//// <summary>
/// GridView 数据绑定委托
/// </summary>
public delegate void GridViewDataBind();

/**//// <summary>
/// 增强 GridView 的功能
/// </summary>
public sealed class GridView {
/**//// <summary>
/// 给指定的GridView控件添加RowCommand、RowCreated、PageIndexChanged事件
/// </summary>
/// <param name="gridView">需要注册事件的GridView控件</param>
public static void RegisterEvents(System.Web.UI.WebControls.GridView gridView) {
RegisterEvents(gridView, null, true);
}

/**//// <summary>
/// 给指定的GridView控件添加RowCommand、RowCreated、PageIndexChanged事件
/// </summary>
/// <param name="gridView">需要注册事件的GridView控件</param>
/// <param name="dataBind">数据绑定方法</param>
public static void RegisterEvents(System.Web.UI.WebControls.GridView gridView, GridViewDataBind dataBind) {
RegisterEvents(gridView, dataBind, true);
}

/**//// <summary>
/// 给指定的GridView控件添加RowCommand、RowCreated、PageIndexChanged事件
/// </summary>
/// <param name="gridView">需要注册事件的GridView控件</param>
/// <param name="dataBind">数据绑定方法</param>
/// <param name="pageText">翻页按钮上的文字</param>
public static void RegisterEvents(System.Web.UI.WebControls.GridView gridView, GridViewDataBind dataBind, string[] pageText) {
RegisterEvents(gridView, dataBind, pageText, true);
}

/**//// <summary>
/// 给指定的GridView控件添加RowCommand、RowCreated、PageIndexChanged事件
/// </summary>
/// <param name="gridView">需要注册事件的GridView控件</param>
/// <param name="dataBind">数据绑定方法</param>
/// <param name="autoChangePage">是否自动添加点击页码的相应事件</param>
public static void RegisterEvents(System.Web.UI.WebControls.GridView gridView, GridViewDataBind dataBind, bool autoChangePage) {
RegisterEvents(gridView, dataBind, null, autoChangePage);
}

/**//// <summary>
/// 给指定的GridView控件添加RowCommand、RowCreated、PageIndexChanged事件
/// </summary>
/// <param name="gridView">需要注册事件的GridView控件</param>
/// <param name="dataBind">数据绑定方法</param>
/// <param name="pageText">翻页按钮上的文字</param>
/// <param name="autoChangePage">是否自动添加点击页码的相应事件</param>
public static void RegisterEvents(System.Web.UI.WebControls.GridView gridView, GridViewDataBind dataBind, string[] pageText, bool autoChangePage) {
gridView.RowCommand += delegate(object sender, GridViewCommandEventArgs e) {
RowCommand(sender, e, dataBind);
};
gridView.RowCreated += delegate(object sender, GridViewRowEventArgs e) {
RowCreated(sender, e, pageText);
};
if (autoChangePage) {
gridView.PageIndexChanging += delegate(object sender, GridViewPageEventArgs e) {
gridView.PageIndex = e.NewPageIndex;
if (dataBind != null) {
dataBind();
} else {
gridView.DataBind();
}
};
}
}

/**//// <summary>

(编辑:IT资讯之家 www.it55.com

返回顶部
共3页: 上一页 1 [2] [3] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]