0

コード ビハインドから、update メソッドで、特定の値をオーバーライドするかどうかをユーザーに尋ねる必要があります。そうであればオーバーライドし、そうでなければ、この値を保存せずに保存を続けます。

私のaspxには、次のJavaScript関数があります。

function ConfirmationBox(msg) {
    var ovd = document.getElementById("hdnOveride"); //gets a HiddenField
        if (confirm(msg) == true) {
            ovd.value = "1";
            return true;
        }
        else {
            ovd.value = "0";
            return false;
        }
    }

コードビハインドから、この関数を呼び出します。次に、HiddenField「hdnoveride」の値を確認します。1 の場合は保存し、それ以外の場合は保存しません。

System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Test", "javascript:ConfirmationBox('overide?');", true);

if (hdnOveride.Value == "1"){
      //Save the value
}

問題は、コードが続行する前に、ユーザーが確認ボックスに答えるのを待たないことです。hdnOveride が次のように設定されていないときに、Thread.Sleep() を使用してみました。

while (hdnOveride.Value == "notset") {
    System.Threading.Thread.Sleep(500);
}

しかし、それはすべてを停止するだけなので、これを行ってもポップアップボックスは表示されません.

コードを続行する前に応答を待つようにシステムに指示するにはどうすればよいですか? ありがとう!

4

1 に答える 1

0

それでは、ここで提案されているように、代わりに Panel を使用してユーザーに質問しました: https://stackoverflow.com/a/7677000/454157

于 2012-09-26T14:20:15.597 に答える