2

簡単なイントラネット フォーラムの削除ボタンを作成する必要があります。投稿を削除するときに確認を求める JavaScript 警告ボックス (または同等のもの) が必要です。ただし、javascript 確認ボックスの結果をコード ビハインドにフィードするのが難しいことがわかりました。これは可能ですか?それとも、別の種類のデザインを使用する必要がありますか?

4

8 に答える 8

6

ユーザーがキャンセルを押した場合、コールバックが発生しないようにするだけです

編集:ジョシュ・ストドラが指摘したように


<asp:Button runat="server" ID="Save" 
    OnClientClick="if (!confirm('Are you sure?')) return false;" />
于 2009-05-06T18:56:18.920 に答える
1

次のようなことをしたい:

    <asp:button runat="server" id="mybutton" 
OnClientClick="return confirm('delete?');" />
于 2009-05-06T18:58:58.583 に答える
0

このために標準のボタン コントロールをサブクラス化することをお勧めします。これにより、将来コードを再利用できるようになります。

namespace MyApp.Controls
{
    public class PromptButton
    {
        public string Prompt { get; set; }

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            if (!string.IsNullOrEmpty(Prompt))
            {
                // Escape apostrophe's in the prompt message
                string safePrompt = Prompt.Replace("'", "\'");

                // Add the onClick to show the alert box when clicked
                Attributes.Add("onClick", string.Format("return confirm('{0}')", safePrompt));
            }
        }
    }
}

これが完了したら、ASPX ページの上部または web.config に参照を追加できます。

<%@ Register Assembly="MyAssembly" Namespace="MyApp.Controls" TagPrefix="app" %>

ページでは、次を使用します。

<app:PromptButton ID="PromptButton1" Prompt="Are you sure?" OnClick="PromptButton1_Click" runat="server" />

これにより、Javascript 確認ダイアログ ボックスが表示され、ユーザーが [OK] をクリックすると、ポストバックが発生します。ユーザーが [キャンセル] をクリックしても、何も起こりません。

最初はもう少し手間がかかりますが、コードの再利用性が大幅に向上し、別のライブラリにまとめて移動して、複数のプロジェクトで使用することもできます。

于 2009-05-06T19:21:10.980 に答える