3

asp:GridViewの削除ボタンの削除確認をポップアップするにはどうすればよいですか?

4

3 に答える 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>

いくつかのメモ:

  1. CommandName は Delete である必要があります。これが、これを GridView の削除機能にマップするものです。
  2. Title は、その行のタイトルのデータ列名です。ここで何を使用するかは、データの列/プロパティ名によって異なります。
  3. datasource という単語についても同じです。これが行を持っているものです。データの名前に置き換える必要があります。
  4. <%$ resource_name %> はテキストに対して機能するはずですが、まだ行っていません。
于 2012-06-15T00:03:18.563 に答える
0

GridView を使用している場合は、間違った方向に進んでいます。プロは使いません。ほとんどの場合、ListView のみを使用します。だから気にしないでください。ほとんどの書籍は、業界のベスト プラクティスを教えていません。

于 2012-06-15T02:06:28.227 に答える
0

グリッド ビューの RowDataBound で、削除リンクに onlick 属性を動的に追加することもできます。

以下のコードでは、3 列のテーブルがあるため、columnIndex = 2 です。また、自動生成ボタン (削除) は 1 つしかないため、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 に答える