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