在.net2005
提供的GridView
中我们可以直接添加一个CommandField
删除列完后在它的RowDeleting
事件中完成删除
GridView在使用CommandField
删除时弹出提示框,在.net2005提供的GridView中我们可以直接添加一个CommandField
删除列:<asp:CommandField ShowDeleteButton="True" />
,完后在它的RowDeleting
事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。
可以通过下面方法给GridView
删除前加上个确认对话框。
首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField
“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied
”的项,点击将它转换为TemplateFied
列。
完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" />
变为了:
代码如下:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" Text="删除"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
最后在<asp:LinkButton>
中加入:OnClientClick="return confirm('确认要删除吗?');"
这样点击删除时就会先在客户端弹出“确认要删除吗?”对话框,而原来在RowDeleting
事件中写的代码完全不用改变。
第二种方法:
实现方法:
双击GridView
的OnRowDataBound
事件;
在后台的GridView1_RowDataBound()
方法添加代码,最后代码如下所示:
代码如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//如果是绑定数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
}
}
}
以上是两种最常见的完善GridView中的删除控件的方法,这两种方法还没有实现对特定数据的绑定作用。