扩展ASP.NET内置GridView控件之一

asp.net|控件

  本文Bilal Haidar详细解释如何扩展ASP.NET2.0内置的GridView控件,同样还将解释了扩展后的GridView控件所具有的新的重要特征:基于行的上下文菜单和GridViews行的过滤功能。

  引言

  本文将聚焦对ASP.NET2.0内置的GridView进行扩展的一系列新功能。其中本文介绍两个主要特征:基于行的上下文菜单(Row_base ContextMenu)和基于过滤功能的GridView的行,在上周我曾经介绍了GridView控件。

  在我们自定义的GridView控件里,提供了几个具有“高效率”功能的扩展,不过,这些功能都不是GridView控件自带的基本功能,正如您即将看到的,我们需要要重构这些功能。 扩展现在的GridView控件可以让您更能够控件常规GridView所没有的功能,另外,扩展该功能后,您以后就可以不断重复的使用这些新特性。

  我们准备增加如下几个特征:

  1、行的单击

  2、行的双击

  3、基于行的上下文菜单

  4、头元素的升序降序排列

  5、当页面记录树木小于PageSize时,修正GridView的高度

  6、内置的过滤文本框

  7、内置的复选框

  除此以外,我们还将添加三个简单按钮,可以利用他们在客户端添加一些简单的确认函数

  ·确认按钮(Confirm Button)

  ·图片按钮(Confirm Image Button)

  ·链接按钮(Confirm Link Button)

  扩展的XGrid控件需要从GridView控件派生,这也就说这个新的控件可以在ASP.NET2.0上运行。

  下面代码显示了扩展后的的开始部分:

namespace CustomControls
{
 namespace Grid
 {
  [ToolboxData("<{0}:xGrid runat=server></{0}:xGrid>")]
  public partial class xGrid : GridView
  {
  要使用这个控件,只要简单的把它通过VS.NET2005的工具栏直接拖放到Web窗体上即可。具体怎把该控件添加VS.NET2005工具栏上则不是本文讨论的范围。

  下面的代码片断显示了它的基本使用

<xGrid:xGrid ID="XGrid1" runat="server" AutoGenerateColumns="False" />
  单击(Single Row Click)

  这是该自定义控件添加的第一个新特性,您现在把鼠标放置到一行数据上然后单击就会引起页面数据的回发,你可能认为使用这个功能实现主/从页面,是的,使用RowClick可以实现这个功能。

  相关的属性是:

  ·EnableRowClick:这个属性可以取值为true/false,默认为false

  ·MouseOverColor:当EnableRowClick设置为true时,利用该属性设置鼠标移过一行数据显示的结果。单击和双击都使用这个功能。

  下图显示了运行结果,在这个运行结果里,显示了单击一行时的效果。

  您可以在RowClick事件里处理单击的结果,示意代码如下:

protected void XGrid1_RowClick(object sender, RowClickEventArgs e)
{
 Response.Write("You clicked row: " + e.GridViewRow.RowIndex);
}
  RowClickEventArgs参数默认是从EventArgs 类派生,并增加了一个名称为GridViewRow 的属性,这样您就可以使用该属性获取当前行的索引。

  行的双击(Double Row Click)

  这是往扩展GridView添加的第二个功能。您现在只需要在一行上双击就会向服务器产生数据回发来处理请求。您可以通过双击让当前行处于编辑默认。 在行的双击里已经添加了RowDoubleClick事件,您可以使用该事件处理特定的业务逻辑

  相关的属性

  EnableRowDoubleClick:取值为true或者false,默认值为false

  MouseOverColor:当EnableRowDoubleClick设置为true时,可以利用该属性设置设置鼠标移过行的效果,这个和单击行的效果一样。

  下图显示了运行结果

  您可以处理RowDoubleClick 事件,示意代码如下:

protected void XGrid1_RowDoubleClick(object sender, RowDoubleClickEventArgs e)
{
 Response.Write("You double clicked row: " + e.GridViewRow.RowIndex);
}
  RowDoubleClickEventArgs 类时从EventArgs 类派生并添加了GridViewRow 属性,使用该属性可以给你更全的控件

  基于行的上下文菜单

  我们花费了一个半月左右的事件来研究GridView控件,但是我们发现没有一个GridView控件可以使用ContextMenu,也就是说内置的GridView上下文菜单控件无法使用。

  我们不得不使用Dino Esposito开发的context meun,该菜单的开发文档发布在MSDN杂志上,本文后面会在资料文件里列出对该文件的链接。 Dino Esposito开发的Context Menu主要使用ASP.NET1.1技术进行开发,我们已经建立了基于ASP.NET2.0 Context Menu项目,该项目拷贝了他的代码,并进行了简单的更改。其中,一个改变是在Context Menu项目里添加了OnClientClick属性,这样在处理客户端向服务器请求的回发前,开发人员可以将客户端处理事件挂接到上下文菜单里。

  Context Menu使用的客户端代码主要是Javascript代码,这里的代码在ASP.NET2.0里已经作为资源(Resource)包括进去了。

  Context Menu现在已经是基于ASP.NET2.0的项目了并且已经集成到扩展的GridView控件的每一行,现在当您右击每一行时,您将可以访问右击事件。扩展的GridView控件还有一个新的属性:RightClickRow,该属性可以返回当前行上下文菜单

  相关的属性如下:

  ·GridView控件是具有上下文菜单的,这里的ID设置的就是在ASPX页面上的GridView控件ID

  ·RightClickedRow:该属性设置上下文菜单。

  下图显示了运行结果。

  当您在行上单击鼠标右键时弹出Context Menu菜单。这里显示了三个选项:

  ·Add a new Row:当选择该选项后,将会在记录里出现新建行。

  ·Delete Row:允许你删除当前右击的行

  ·Edit Row:运行您设置当前行的模式 为编辑模式

时间: 2024-08-01 16:18:04

扩展ASP.NET内置GridView控件之一的相关文章

一起谈.NET技术,VS 2010 和 .NET 4.0 系列之《内置图表控件》篇

本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 >篇 VS 2010 和 .NET 4.0 系列之<起始项目模板>篇 VS 2010 和 .NET 4.0 系列之<多定向支持>篇 VS 2010 和 .NET 4.0 系列之<多显示器支持>篇 VS 2010 和 .NET 4.0 系列之<代码优化的Web开发

VS 2010 和 .NET 4.0 系列之《内置图表控件》篇

本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 >篇 VS 2010 和 .NET 4.0 系列之<起始项目模板>篇 VS 2010 和 .NET 4.0 系列之<多定向支持>篇 VS 2010 和 .NET 4.0 系列之<多显示器支持>篇 VS 2010 和 .NET 4.0 系列之<代码优化的Web开发

ASP.NET 2.0 GridView控件应用模版

asp.net|控件 GridView控件是由一系列数据显示控件之一,它可以绑定到 SqlDataSource 控件以返回的数据记录的字段以动态生成网格, GridView为我们提供了多种数据绑定列类型,例如BoundField 默认数据绑定列类型是一种简单的数据类型,展现了文本数据值. 其他类型方面的数据显示文本内容交替使用.CheckBoxField 复选框显示布尔数据类型.CommandField 显示一个按扭,按扭的类型可以是Button 普通按扭.LinkButton超链接按扭.Ima

ASP.NET技巧:GridView控件自定义分页详解

asp.net|分页|技巧|控件|详解   前些天我写了关于 <<在存储过程中实现分页>>和<<GridView控件事件详解 >> ,后来又有一些人问我怎样在GridView中应用这个东东!其实很简单,主要是怎么保存当前页面的页码PageIndex问题,不过把这个解决了什么都好办了.因为在分页过程中:PageSize是一定的,我们可以用一个属性来表示.保存PageIndex好多中方法,而且数据不是很庞大,基本不会好太多的资源.还是一句老话,话再多都没有例子直

ASP.NET2.0中用Gridview控件操作数据

asp.net|控件|数据 在ASP.NET 2.0中,加入了许多新的功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大的提高.其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大.在本文中,将探讨Gridview控件中的一些功能特性和用法,如果各位读者对Gridview控件不大了解,可以通过<使用ASP.NET 2.0中的Gridview控件>一文,来对Gridview控件有个初步的认识. 1.使用Gridview插入新记录 在Gridview控件中,

ASP.NET2.0中用Gridview控件操作数据的代码_实用技巧

其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大.在本文中,将探讨Gridview控件中的一些功能特性和用法,如果各位读者对Gridview控件不大了解,可以通过<使用ASP.NET 2.0中的Gridview控件>一文,来对Gridview控件有个初步的认识. 1.使用Gridview插入新记录 在Gridview控件中,可以实现插入新记录的操作(见<使用ASP.NET 2.0中的Gridview控件>)一文,但如果想实现在Gridview中,实现在G

ASP.NET数据绑定之GridView控件_实用技巧

GridView 是 DataGrid的后继控件,在.net framework 2 中,虽然还存在DataGrid,但是GridView已经走上了历史的前台,取代DataGrid的趋势已是势不挡. 作用:其功能是在web页面中显示数据源中的数据.GridView和DataGrid功能相似,都是在web页面中显示数据源中的数据,将数据源中的一行数据,也就是一条记录,显示为在web页面上输出表格中的一行.     在此GirdView的详细属性和事件我不再阐述.下面我只是简单介绍一下GirdVie

灵活使用asp.net中的gridview控件_实用技巧

gridview是asp.net常用的显示数据控件,对于.net开发人员来说应该是非常的熟悉了.gridview自带有许多功能,包括分页,排序等等,但是作为一个.net开发人员来说熟练掌握利用存储过程分页或者第三方自定义分页十分重要,这不仅是项目的需要,也是我们经验能力的提示,下面我就来讲利用存储过程分页实现绑定gridview 1.执行存储过程         网上有许多sql分页存储过程的例子,但是你会发现其中有许多一部分是不能用的,例如有些使用in或者not in来分页效率非常的低,有些s

ASP.NET 2.0中Gridview控件高级技巧

ASP.NET 2.0中新增加的gridview控件的确十分强大,弥补了在asp.net 1.1中,使用datagrid控件时的不足之处.因为在asp.net 1.1中,在使用 datagrid时,很多情况下依然要编写大量的代码,十分不方便,而且有时需要很 多技巧.而在asp.net 2.0中,很多情况下,使用gridview控件的话,甚至只需 要拖拉控件,设置属性就可以了,不需要编写任何代码.在<使用ASP.NET 2.0 中的GridView控件>和<ASP.NET2.0中用Grid