目的
* サーバサイドの処理中に確認ダイアログを表示し、「OK」「キャンセル」で処理を分ける。
概要
1) 画面に、Buttonコントロールを一つ配置。(サンプルでは、名前をButton11とする) 2) CSSにて、Button11の表示を消します。 3) 処理途中でRegisterStartupScriptでJavascriptを表示する。 4) OKだったら、非表示のボタンButton11をjavascriptから呼び出し、以降の処理を行う (キャンセルだったら何もしない)http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=45981&forum=7
サンプル
デザイン部
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm5.aspx.vb" Inherits="WebApplication1.WebForm5" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="">http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .hide { visibility:hidden; } </style> <script type="text/javascript"> <!-- function ComfirmDialog(confirmMessage, buttonClientID) { if (window.confirm(confirmMessage)) { var button = document.getElementById(buttonClientID); button.click(); } } --> </script> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="クリア" /> <asp:Button ID="Button11" runat="server" Text="隠しボタン" CssClass="hide" /> <br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> </div> </form> </body> </html>
コード部
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Not String.IsNullOrEmpty(Me.TextBox1.Text) OrElse _ Not String.IsNullOrEmpty(Me.TextBox2.Text) Then Dim script As String = String.Format("ComfirmDialog('{0}', '{1}');", _ "クリアしますがいいですか?", _ Me.Button11.ClientID) Me.ClientScript.RegisterStartupScript(Me.GetType(), "clientScriptKey", script, True) End If End Sub ' 確認ダイアログでOKだったら、実行する処理を記述 Protected Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click Me.TextBox1.Text = String.Empty Me.TextBox2.Text = String.Empty End Sub
参考文献
http://atamoco.boy.jp/asp/20101014_3.phphttp://dobon.net/vb/bbs/log3-36/21892.html
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23286&forum=7