1
else if (Result == 1)
{
  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Test", "return  confirm('Are you sure you want to delete? This action cannot be undone.')", true);                              
  FSI.DeleteINsertData(ID.ToString(), No.ToString());
}

コードビハインドでjsの確認があります。ユーザーが「はい」をクリックしたときに処理を続行したいのですが、それ以外の場合は、ユーザーが「いいえ」をクリックして何もしません。それはelse ifステートメントにあります。回答ありがとうございます。

4

3 に答える 3

0

サーバー側とクライアント側をマージできると思います。スクリプトを分離コードとして追加できます。
string scriptStr = "<script>var confirmation = confirm('something'); if(confirmation){document.getelementbyid('button').click();} else{//something else}</script>"; RegisterStartupScript("ScriptFunction", scriptStr );

and then in your code behind handle the button click event.
This may works for you.
于 2013-10-31T10:48:08.623 に答える
0

あなたの質問は、クライアント側のコードが実行されるのを待っている間に(何かを削除する前に)サーバー側のコードを一時停止することを意味します(ユーザーが削除を実行したいことを確認するために確認ボックスを投げます) )。これは単に物事が機能する方法ではありません。

ScriptManager.RegisterClientScriptBlock(...) 呼び出しが行うことは、クライアントに応答を送信するときにそのスクリプトを含める必要があることをサーバーに伝えることだけです。その後、一時停止してスクリプトを送信しません。代わりに、削除を実行して続行しページとスクリプトがクライアントに送信されます。この動作を変更することはできません。これは、サーバー側の Web プログラミングの仕組みの基本的な部分です。

あなたのオプションは、実際には、サーバーに行く前に、最初にクリックした削除ボタン/リンクに確認ボックスを表示させることです (フォームの送信をキャンセルするか、気が変わった場合はリンクのクリックをキャンセルします)、またはまたは、サーバーがその送信/クリックに応答して、別のボタンをクリックする必要がある確認ページでクリックし、サーバーに戻って実際に削除を実行するようにします。

于 2013-10-31T08:48:13.093 に答える