如何在asp:GridView中获取删除确认

时间:2012-06-15 00:03:18

标签: asp.net

如何在asp:GridView中弹出删除确认删除按钮?

3 个答案:

答案 0 :(得分: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>

几点说明:

  1. CommandName必须是删除 - 这是将其映射到的 GridView删除功能。
  2. 标题是的数据列名称 那一行的标题。你在这里使用的将取决于 数据的列/属性名称。
  3. 同样的数据源 - 这就是我们的行。你需要替换你的 数据被调用。
  4. 我认为&lt;%$ resource_name%&gt;应该为...工作 文字 - 但还没有那样做。

答案 1 :(得分:0)

如果您使用的是GridView,那么您的轨道错误。专业人士不要使用它。他们几乎只使用ListView。所以不要理会它。大多数书籍都没有教授工业最佳实践。

答案 2 :(得分: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

不要忘记妥善处理您的例外情况。