允许插入行的扩展 GridView

分享于 

4分钟阅读

Web开发

  繁體

Insertable gridview

介绍

本文介绍( 另一个) 可以插入 GridView。 你可能知道,GridView 控件是 ASP.NET v.2 中用来显示和编辑表数据的首选控件。 尽管 GridView 在以前的DataGrid 控件上得到了改进,但它仍然缺乏插入新行的能力。 Microsoft表示,你可以使用 FormView 或者 DetailsView 组件插入新行。 但是,通常在位置添加新行是很方便的。 经过修改的web服务器 GridView 控件可以通过在页脚行中添加'加'图像来实现这一点。 按下时,新行将使用默认值添加到数据库,网格将在编辑模式下显示新行,在最后一个网格页面的底部。 如果按取消按钮,新行将从数据库中删除。 编辑新行后,将还原 GridView的排序。

Insertable gridview when a new row is added

在插入功能之外,代码会自动在网格的第一列中添加按钮图像,用于选择。编辑和删除操作。

使用代码

修改后的控件作为继承 GridView 控件的自定义服务器控件实现。 要使用它,请添加对 PSControls.dll 文件或者PSControls项目的引用。 如果你使用该项目,你可以进一步定制控件,并通过创建 Messages.XX.resx 来定位控件消息。

然后,在. aspx 窗体上放置 PSGridView 控件,并使用智能标记菜单对它的进行配置。 第一个字段( 列) 必须是空的TemplateField,因为代码创建添加。选择。编辑。删除。更新和取消按钮。 下面显示了使用 Visual Studio 2005配置字段的一个示例:

Insertable gridview columns

你可以通过设置控件的布尔 CanAddCanSelectCanEditCanDelete 自定义属性来确定是否创建了添加。选择。编辑和删除按钮。 此外,还可以通过设置 IsEditable 属性来禁用所有编辑按钮 False 默认情况下,所有这些属性都设置为 True

添加按钮时,控件将新行添加到数据库中。 所以,如果插入的表有'非空'column(s),,则会引发异常,除非在数据源控件的Inserting 事件中放置默认值。 下面是一个示例:

ProtectedSub sqlCustomers_Inserting(ByVal sender AsObject, _
 ByVal e As System.Web.UI.WebControls.SqlDataSourceCommandEventArgs) _
 Handles sqlCustomers.Inserting
 e.Command.Parameters("@CustomerType").Value = "S"EndSub

要让图像像示例一样出现,请在你的Web应用程序的root 处复制演示的图像文件夹。 或者,通过 AddImageUrlEditImageUrlDelImageUrlSelImageUrlUpdateImageUrlCancelImageUrl 属性来指定你自己的图像。

更新:在初始发布之后我实现了,只有当新行的主键总是增加时,插入功能才正常工作。 通过定义标识( 自动增量) 主键列 比如,可以很容易地实现 ID int不是空的IDENTITY(1,1) 主键。 此外,必须创建一个空模板,以便在表没有行的情况下显示 plus icon"。 你可以使用 Visual Studio 进行操作,也可以通过插入 <EmptyDataTemplate></EmptyDataTemplate> 标记到控件的声明中。

历史记录

  • 版本 1.0 - 基本可以插入行功能。 编辑控件。
  • 版本 1.01 - 更新以使 PreRender 事件处理程序上的CanXXX 属性更改在控件上生效。

ext  GRID  Extend  Gridview  插入  ROWS  
相关文章