GridView删除前提示的又一添加方法
2007-10-15 10:20
387 查看
在我写的《DataGrid与GridView中删除前提示框与编辑框长度设置的实现(ASP.NET)》一文中,提到过GridView删除前提示的方法,主要有JS脚本法、Text属性法、事件代码法(DataGrid)、模板列法(GridView)等。
但JS脚本法,适用性不强,只要控件的ID更改了,就得要更改JS脚本,实在麻烦。Text属性法呢,当你用的是GridView的CommandField时,此法就不适用了,而我最近正好就使用了这个。事件代码呢,文中只提到过DataGrid的ItemCreated事件,还有很多其他可行的事件在DataGrid中存在而在GridView中没有的。模板列法呢,虽然这个方法在GridView中很有效,但我想,有没什么办法可以用在CommandField上而可以不用模板列的呢?
经过研究,确实找到了一个方法。其原理很简单:在GridView中有一个RowCreated事件,它是GridView在每行数据创建后执行的,它GridViewRowEventArgs类的变量e,不是含有当前行的引用吗?而在RowCreated执行的时候,当前行是已经创建了的,也就是说该行所有的控件都存在了,那么自然就可以在这时候利用Attributes.Add方法来添加onclick属性了(类似DataGrid的事件代码法)。
那么,以后就又多了一个在GridView上添加删除前提示的方法了!
代码如下(在GridView的RowCreated事件中添加):
Visual Basic.Net:
Dim lnkDel As LinkButton
If e.Row.RowIndex >= 0 Then
lnkDel = e.Row.Cells(0).Controls(0)
lnkDel.Attributes.Add("onclick", "return confirm('确定要删除该记录吗?')")
End If
Visual C#:
LinkButton lnkDel;
if (e.Row.RowIndex >=0)
{
lnkDel = e.Row.Cells[0].Controls[0];
lnk.Attributes.Add("onclick", "return confirm('确定要删除该记录吗?')");
}
在这里说明一下,因为CommandField所有的控件,最终都是要转换为LinkButton的,所以我要用LinkButton类的变量来接收这个控件。如果用的不是CommandField,可以把LinkButton类换成其他相应的类。至于为什么一定要“e.Row.RowIndex >=0”呢?是因为HeaderText其实也算一行的,总不会要在HeaderText上也加上删除前提示吧;而且HeaderText中所有的控件最终都是要转换为Label的,用LinkButton类的变量来接收,肯定会抛出类型不匹配的SystemException。
其他就没什么好说明的了,相信大家不会连其他的那么点代码都看不懂吧。
< Tags: gridview , 删除 , 提示 >
但JS脚本法,适用性不强,只要控件的ID更改了,就得要更改JS脚本,实在麻烦。Text属性法呢,当你用的是GridView的CommandField时,此法就不适用了,而我最近正好就使用了这个。事件代码呢,文中只提到过DataGrid的ItemCreated事件,还有很多其他可行的事件在DataGrid中存在而在GridView中没有的。模板列法呢,虽然这个方法在GridView中很有效,但我想,有没什么办法可以用在CommandField上而可以不用模板列的呢?
经过研究,确实找到了一个方法。其原理很简单:在GridView中有一个RowCreated事件,它是GridView在每行数据创建后执行的,它GridViewRowEventArgs类的变量e,不是含有当前行的引用吗?而在RowCreated执行的时候,当前行是已经创建了的,也就是说该行所有的控件都存在了,那么自然就可以在这时候利用Attributes.Add方法来添加onclick属性了(类似DataGrid的事件代码法)。
那么,以后就又多了一个在GridView上添加删除前提示的方法了!
代码如下(在GridView的RowCreated事件中添加):
Visual Basic.Net:
Dim lnkDel As LinkButton
If e.Row.RowIndex >= 0 Then
lnkDel = e.Row.Cells(0).Controls(0)
lnkDel.Attributes.Add("onclick", "return confirm('确定要删除该记录吗?')")
End If
Visual C#:
LinkButton lnkDel;
if (e.Row.RowIndex >=0)
{
lnkDel = e.Row.Cells[0].Controls[0];
lnk.Attributes.Add("onclick", "return confirm('确定要删除该记录吗?')");
}
在这里说明一下,因为CommandField所有的控件,最终都是要转换为LinkButton的,所以我要用LinkButton类的变量来接收这个控件。如果用的不是CommandField,可以把LinkButton类换成其他相应的类。至于为什么一定要“e.Row.RowIndex >=0”呢?是因为HeaderText其实也算一行的,总不会要在HeaderText上也加上删除前提示吧;而且HeaderText中所有的控件最终都是要转换为Label的,用LinkButton类的变量来接收,肯定会抛出类型不匹配的SystemException。
其他就没什么好说明的了,相信大家不会连其他的那么点代码都看不懂吧。
< Tags: gridview , 删除 , 提示 >
相关文章推荐
- 最正确的为GridView添加删除提示的方法(转)
- ASP.NET中为GridView添加删除提示框的方法
- ASPxGridView删除、添加、修改成功后,弹出提示对话框的方法
- DataGrid,GridView和DetailsView中添加删除确认提示
- 转:GridView 中如何给删除按钮添加提示
- ASP.NET中为GridView添加删除提示框
- 转:GridView 中如何给删除按钮添加提示
- 为gridview里的删除列添加删除时确认提示
- 为gridview“删除”列添加确认对话框的方法
- Gridview的RowDataBound事件(添加删除提示,改变背景颜色)
- 给GridView删除列添加删除提示
- DataGrid,GridView和DetailsView中添加删除确认提示
- 为GridView删除添加提示
- ASP.NET中为GridView添加删除确认提示框
- gridview删除添加提示
- 为GridView删除添加提示(转载)
- DataGrid,GridView和DetailsView中添加删除确认提示
- DataGrid,GridView和DetailsView中添加删除确认提示
- 为gridview删除添加提示