摘要:本文主要讲解在GridView控件中结合SqlDataSource控件如何实现新增记录,新增、编辑记录时如何验证数据,以及删除信息时提示信息
GridView给我们网站开发中数据的显示提供了非常强大的功能,特别是它自带的编辑、删除、分页、排序等功能。让我们不要写任何代码就能实现对数据库的插入、修改、删除等。虽然功能已经非常强大,但是有时还是不满足我们的实际需求,比如对于只有3,4个字段的表的操作,例如管理新闻类别之类的,字段长度不大,字段数少的情况,我们希望在GridView内能够实现新增、编辑、删除、并且能够进行数据验证,删除时能弹出消息框作提示,编辑功能时我们要改变默认的显示控件等,这些功能GridView没有给我们提供,我们必须自己来实现。
下面我们就以一个对产品的类别的管理为例来说明,产品分为产品大类和产品小类,我们要求对产品小类进行管理。
本文包含的知识点主要有:
l 生成并显示记录的序号
l 模版列的应用
l GridView在新增状态和编辑状态时对数据的验证,服务器控件(常见的为按钮类控件)ValidationGroup属性的使用
l 在编辑时点“取消”或者正常状态点“删除”提示用户
l 在GridView中改变默认的控件显示数据
l GridView页脚在新增记录时的应用
l GridView控件RowCommand、 RowCreated事件的应用
首先来看看我们实现的效果
图 1 :产品小类的正常管理界面,此时点删除,则会弹出提示框:
图2:点击新增按钮时的界面,若产品小类名为空,点确定时则提示“必填”
也就是进行数据验证。
图3:点编辑按钮后的操作界面
此时点“取消”则会弹出提示框:
下面开始来实现以上呈现的一些功能,本文涉及2个数据表:一个产品大类表ProductBigClass表,字段为BigClassID和BigClassName ;一个产品小类标ProductSmallClass表,字段有SmallClassID,SmallClassName和BigClassID 。
第一步:从工具栏拖一个GridView控件到页面,配置数据源邦定,省略;注意配置数据源时一定要点击“高级”配置,钩选“生成INSERT,UPDATE,DELETE语句”选项,因为我们要利用它自带的数据插入,编辑,删除功能。
第二步:将所有GridView的列转化为模版列。只有转化为模版列我们才能对这些列及列里面的控件进行操作。
编辑“所属大类”这一列,定位到ItemTemPlate,默认为一个label显示,而且显示的是大类的编号,并不是名称,因此我们删掉label,拖入一个DropDownList控件,进行数据邦定到产品大类表,“编辑DataBinding”将其SelectValue属性邦定为产品小类表里的字段BigClassID,并且将其Enable设置为false,因为我们只显示,这时就达到了图1中第三列的显示效果
第三步:实现第一列的自动序号显示功能
首先给GridView添加一模版列,作为第一列。鼠标右键---编辑模版—column[0],打开模版编辑界面,在ItemTemPlate里输入<%#Container.DataItemIndex+1 %>即可;然后再HeaderTemplate里拖入一个LinkButton控件,命名为lkbAddItem,text属性为“新增”,CommandName设置为“AddItem”
此时就看到实现了图1中第一列的效果。
第四步:实现新增功能,我们的新增功能效果如图2所示,此处我们充分利用脚模版的功能,即在脚模版里放入我们的添加数据时需要的数据。
第二、三、四列的模版效果图4如下,这三列的FooterTemplate里的控件就是我们添加记录时所需要的
图4:
其中确定按钮的CommandName属性为“ItemSure”,取消按钮的CommandName属性为“ItemCancel”。实现代码如下:
{
if (e.CommandName == "AddItem")//点“新增”按钮
{
GridView1.ShowFooter = true;
}
if (e.CommandName == "ItemCancel")//点新增状态下“取消”按钮
{
GridView1.ShowFooter = false;
}
if (e.CommandName == "ItemSure")//点新增状态下“确定”按钮