0

あらゆる方法を何時間も試した後、私はあきらめました。たぶん、皆さんは私がここで間違っていることを見ることができます。[削除] ボタンのある GridView があります。ClientClick イベントで、はい/いいえボタンで jquery msgbox を開く JavaScript 関数を呼び出します。ユーザーが [はい] をクリックした場合、関数ConfirmDeleteRecord()が true を返すようにします。

これは、GridView の "削除" 列がどのように見えるかです。

<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
        <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ClientSkuID") %>' Text="Delete" runat="server" ID="lnkDelete" OnClientClick="return ConfirmDeleteRecord()"></asp:LinkButton>
    </ItemTemplate>

これは私のJavascript関数です:

function ConfirmDeleteRecord() {

var bResult = false;

$.msgBox({
    title: "Are You Sure?",
    content: "Are you sure you want to delete this record?",                    
    type: "confirm",
    buttons: [{ value: "Yes" }, { value: "No" }, { value: "Cancel"}],
    success: function (result) {
        if (result == "Yes") {
            bResult = true;
        }
    }
    });


return bResult;

}

問題は、コードが「return bResult」行に到達しないことです。

皆さん、ありがとうございました。

4

1 に答える 1

0

$.msgBox は confirm() のようなブロッキング関数ではないため、これは機能しません。わかる?その関数が行っているのは、HTML を表示することだけです。代わりに、次のコードを変更する必要があります。

 if (result == "Yes") {
            bResult = true;
        }

次のようなものに:

if (result == "Yes") {
 //perform postback here to delete the record. 
}
于 2012-12-08T21:46:06.430 に答える