2

ユーザーに確認メッセージを要求するJavascript関数を1つ返しました。JavaScript関数は

    function ConfirmOnDelete() {
    if (confirm("Are you sure to delete?"))
        return true;
    else
        return false;

GridViewは次のようになります。

    <asp:CommandField HeaderText="Delete" ShowDeleteButton="True" />

ここでは、ユーザーがGridViewコマンドフィールドで[削除]をクリックしたときにJavaScript関数を呼び出します。これをどのように呼ぶのですか?

4

7 に答える 7

6

を使い続けたいと仮定すると、GridViewのイベントCommandFieldを使用してプログラムでこれを行うことができます。OnRowDataBound

GridView宣言でRowDataBoundイベントのイベントハンドラーを指定します。

<asp:GridView ID="gv" runat="server" OnRowDataBound="gv_RowDataBound"....

次に、イベントハンドラー(コードビハインド)でボタンを見つけ(ここでは、これはプロパティImageButtonによって異なりますが、ここでは想定していButtonTypeますCommandField)、そのプロパティにJavaScriptを追加しOnClientClickます。

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ((ImageButton)e.Row.Cells[cell].Controls[ctrl]).OnClientClick = "return confirm('Are you sure you want to delete?');"; // add any JS you want here
    }
}

上記の例では、cellはユーザーの列インデックスを参照しCommandFieldctrlは参照しているセル内のコントロールインデックス([削除]ボタン)を参照します。

于 2013-01-18T11:06:23.883 に答える
3

サーバー側で削除の確認を求めないようにし、javascriptを使用してユーザーの最終決定を取得してから、サーバー側に移動してロジックを実行することをお勧めします。CommandFieldはここでは最善の解決策ではありません。

JS:

<script type="text/javascript">
    function DeleteConfirm() {

        if (confirm("Are you sure you want to delete this customer from excluded customer list ?")) {
            return true;
        }
        return false;
    }
</script>

HTML:

            <asp:TemplateField HeaderText=" ">
                <ItemTemplate>
                    <asp:LinkButton ID="lnk_RemoveFromlist" runat="server" Text="Delete"
                        CommandName="Delete" OnCommand="Delete_Command" CommandArgument='<%# Eval("ID").ToString()' OnClientClick='return DeleteConfirm()'></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>

コード:

protected void Remove_Command(object sender, CommandEventArgs e)
{
    //Implement your Delete Logic
}
于 2013-01-18T11:15:51.017 に答える
2

キャンセルボタンの場合はコマンド名が「キャンセル」、削除ボタンの場合は「削除」をチェックしてください。

if(e.CommandName == "delete")
 {
   //script to delete();
 }
else if(e.commandName == "cancel")
 {
   //close with some script;
 }

コードビハインドでjavascript関数を呼び出すには、

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function","loadPopupBox();", true);
于 2013-01-18T11:17:36.407 に答える
1

一般に、指定する必要がありますが、 CommandFieldOnClientClick="return confirm('Are you sure you want to delete ?');"では機能しません。TemplateFieldを使用する方が適切です。これにより、 http: //davesquared.net/2007/10/confirm-delete-for-gridview.htmlがより適切に説明されます。

于 2013-01-18T10:50:34.917 に答える
1

ボタンのOnClientclickイベントを使用して、関数を呼び出すことができます。たとえば、

<asp:button id="btndelete" runat="server" Text="delete" Onclientclick="if(!ConfirmOnDelete())return false;"/>
于 2013-02-08T10:27:25.783 に答える
0

起動スクリプトを使用する

    ScriptManager.RegisterStartupScript(Page, this.GetType(), "ConfirmOnDelete", "ConfirmOnDelete();", true);

または、onclientclickを使用することもできます

于 2013-01-18T10:52:40.480 に答える
0

HTML:

<asp:GridView ID="GridView1" runat="server" OnRowDeleting="gv1_RowDeleting">
   <Columns>
       <asp:TemplateField HeaderText="Delete">
          <ItemTemplate>
                   <asp:CommandField ShowDeleteButton="true" HeaderText="delete" />  
          </ItemTemplate>
       </asp:TemplateField>
   </Columns>
</asp:GridView>

コード:

    protected void gv1_RowDeleting (object sender, GridViewDeleteEventArgs e) 
{

    GridView1.Attributes.Add("OnClick", "return confirm('Really wanna delete?');");

       // implement your delete logic

    Response.Write("<script>alert("Delete Successful");</script>");

}

これにより、Gridviewの[削除]コマンドフィールドをクリックするとJavascript関数が呼び出され、Response.write関数はデータが削除されたことを警告します。この関数には、実行したい関数を追加できます。

于 2013-10-31T11:10:47.773 に答える