3

サーバー側のコードの途中で JavaScript の確認ボックスを表示しようとしていますが、ユーザーの確認を取得した後、処理を続行しますが、確認ボックスが表示されません。サンプルコードもいくつか書きましたが、成功しませんでした。

サーバー処理の後、ユーザーに質問する必要があり、ユーザーの確認後、他のサーバーコードを続行します。それは非常に単純なようです。アラートボックスも機能します。どうすれば解決できますか?

ボタンクリックから直接javascriptの確認ボックスを呼び出すことはできないことに注意してください。サーバー側のコードを実行する必要があります。それで問題がなければ、続行のために確認ボックスを表示したいと思います。

ここにコードがあります

<asp:Button ID="btn_deletefromDB" runat="server" OnClick="btn_deletefromDB_Click"  Text="Delete from Datatbase);" />


protected void btn_deletefromDB_Click(object sender, EventArgs e)
{

         //Delete service from Database 
        // some server side processing code
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "confirm", "return confirm('Do you want to delete it from runtime too? Click OK to proceed.');", true);
        Label1.Text = "delete from runtime confirmed";
        // continue and delete from runtime
        //bla bla bla

}
4

3 に答える 3

3

コード ビハインドでこれをトリガーする代わりに、次のButton1 OnClientClickようにイベントに追加する必要があります。

<asp:Button ID="Button1" runat="server" OnClientClick="return confirm('Do you want to delete it? Click OK to proceed.');" OnClick="Button1_Click" />
于 2013-03-26T05:31:11.510 に答える
2

Web アプリケーションはこのようには機能しません。ページのサーバー側ライフサイクルの途中でユーザー入力を求めることはできません。この質問はクライアント側で行う必要があり、ユーザーの応答はページの送信データの一部としてサーバーに送信される必要があります。

すべては、ページがリクエスト処理を完了したときにクライアントに送信されるScriptManager.RegisterStartupScript最終的なコンテンツに貢献することです。htmlこのhtmlコンテンツがクライアント コンピューターに届くまでに、ユーザーはブラウザーを閉じて家に帰っている可能性があることに注意してください。

于 2013-03-26T05:27:51.593 に答える
1

AJAX を使用してクエリをサーバーに送信し、サーバー コードを作成して、2 つの部分で処理するようにします。これの実例はありませんが、これは一般的にどのように機能するかです。サーバーにデータを投稿するには、他の人が提案したようにJSまたは他のライブラリでネイティブAJAXオブジェクトを使用でき、サーバー側でデータを処理するには、標準のWebページの代わりに汎用ハンドラー(ashx)を使用できます。

  1. リクエストをサーバーに送信します。
  2. クライアント ページで JS を介して処理の最初の部分をキャッチします。
  3. JS ウィンドウを表示
  4. 他の部分をサーバーに送信する

デフォルトでは、サーバーは 2 番目のリクエストを最初のリクエストに接続できないため、処理の最初の部分の結果をクライアントに送信する必要があります。

于 2013-03-26T09:55:25.370 に答える