如何在 asp:GridView 中弹出删除按钮的删除确认?
问问题
2792 次
3 回答
8
如果您在 GridView 中的每一行都有一个删除按钮,那么我认为这是最好的(而且绝对是最简单的)方法,可以让它发出一个要求确认的警报。这是完整的 aspx 代码(不需要隐藏代码):
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="DeleteButton" runat="server"
CausesValidation="False"
CommandName="Delete"
OnClientClick='<%# Eval("Title", "return confirm(\"Delete the datasource {0}?\");") %>'
Text="delete" />
</ItemTemplate>
</asp:TemplateField>
几点注意事项:
- CommandName 必须是 Delete - 这就是将其映射到 GridView 删除功能的原因。
- 标题是该行标题的数据列名称。您在此处使用的内容取决于数据的列/属性名称。
- 数据源这个词也是如此——这就是我们所拥有的行。您需要替换为您的数据所调用的内容。
- 我认为 <%$ resource_name %> 应该适用于文本 - 但还没有这样做。
于 2012-06-15T00:03:18.563 回答
0
如果您使用的是 GridView,那么您就走错了路。专业人士不使用它。他们几乎只使用 ListView。所以不要打扰它。大多数书籍不教授工业最佳实践。
于 2012-06-15T02:06:28.227 回答
0
您还可以在网格视图的 RowDataBound 上动态地将 onlick 属性添加到删除链接。
在下面的代码中,我们有一个 3 列的表,所以 columnIndex = 2。此外,只有一个自动生成按钮(删除),所以 autoButtonIndex = 0。如果我们有一个编辑按钮,保存按钮,这个索引会改变.
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
Dim columnIndex As Integer = 2
Dim autoButtonIndex as Integer = 0
Try
If (e.Row.RowType = DataControlRowType.DataRow) Then
If (e.Row.RowState = DataControlRowState.Normal Or e.Row.RowState = DataControlRowState.Alternate) Then
Dim lnkBtn As LinkButton = CType(e.Row.Cells(columnIndex).Controls(autoButtonIndex), LinkButton)
lnkBtn.Attributes.Add("onclick", "if(!confirm('Are you sure to delete this row?'))return false;")
End If
End If
Catch ex As Exception
End Try
End Sub
不要忘记适当地处理您的异常。
于 2012-09-25T11:39:59.450 回答