- - PR -
ASP.NET-イベントからMessageBoxを表示するには?
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-01-14 16:54
早速の回答有難うございます。
ご指摘のようにfunction内のif文でjavascriptは処理できるのですが(下記例)、 これはjavascriptの処理であり、.netではありません。 yesならばトランザクションの開始、noならば中止というようにしたいのです。 javascriptならボタンクリックを処理できるのですが、.netのコードでは できないのかなということなんです。 例: Dim wkscript As String wkscript = "" wkscript = wkscript & "<SCRIPT language=""JavaScript"">" & vbCrLf wkscript = wkscript & "<!--" & vbCrLf wkscript = wkscript & " answer=confirm(""更新しますか?"");" & vbCrLf wkscript = wkscript & "if(answer==true)" & vbCrLf wkscript = wkscript & "yesの処理";" & vbCrLf wkscript = wkscript & "else" & vbCrLf wkscript = wkscript & "noの処理";" & vbCrLf wkscript = wkscript & "// -->" & vbCrLf wkscript = wkscript & "</SCRIPT>" & vbCrLf Response.Write(wkscript) |
|
投稿日時: 2003-01-14 17:07
>javascriptならボタンクリックを処理できるのですが、.netのコードでは
>できないのかなということなんです できません。 JavaScriptはクライアント側で、.NETはサーバー側で作動するのでJavaScriptのconfirmで呼び出されたどのボタンがユーザーがクリックしたはポストバックなどを利用しない限りサーバー側ではわかりません。 ザクさんのなさりたいことは 押されたボタンに応じてフラグをセットしてからポストバックすれば多分出来ると思います。 |
|
投稿日時: 2003-01-17 21:37
私は下記のようなユーザコントロールを使用しています。
サーバー側でイベントを処理しその後にMsgBoxに出したいメッセージを設定しています。 ----ascx------ <script language="javascript"> window.alert('<%= Message %>'); </script> ----ascx.vb------ Private m_strMessage As String = "エラーだよ" Public Property Message() As String Get Return m_strMessage End Get Set(ByVal Value As String) m_strMessage = Value End Set End Property ASPXページに貼り付けるときはEnableViewStateとVisibleをFalseにしておきます。 ポストバックされたイベントの中でこのコントロールをVisibleをTrueにしてやれば ブラウザにMsgBoxが表示されます。自分でも結構気に入って使っています。 [ メッセージ編集済み 編集者: ユーパロ 編集日時 2003-01-17 21:54 ] |
|
投稿日時: 2003-01-31 01:43
ユーパロさんのアドバイスを見て作って見ました。
ユーザコントロールはIPostBackEventHanderインターフェースを継承してください。 基本的にはユーザコントロールですが、ascの方には何も記載しません。 その代わりにasc.vb(cs)のRender関数から吐き出します。 Alertの代わりにConfirmを使いす。 if (Confirm(message)) { // YESの処理 } else { // NOの処理 } なんですが、YES,NOの両方にGetPostBackEventReferenceを使いPostBackイベントを定義します。 これを入れることによって、YESが押されたとき、NOが押されたときのイベントをvb(cs)のRaisePostBackEvent関数で受け取れるようになります。 あとは、このユーザコントロールに自分のイベントを定義し、ページでこのユーザコントロールのイベント呼び出しをセットしてあげれば、アプリケーション側で、Confirmの結果を受け取れるようになります。 ユーパロさんのやり方が無かったら思いつきませんでした。大変勉強になりました。 |
|
投稿日時: 2003-02-15 13:26
どうもです。
私も似たような処理を致したく masas さんのアドバイスを参考にして 作成してみたのですが、いまひとつ知識不足でピンときません。 なので、宜しければ具体的にascx.vbのサンプルコードを提示して いただくわけにはいかないでしょうか? あと利用する側のaspx.vbのサンプルコードも是非見せてほしいです。 因みに私がしたいことはDataGrigの削除ボタンをクリックしたときに このMessageを表示しユーザがOKをクリックしたときに削除を実行する処理を 実現したいと考えております。 宜しくお願いいたします。 |
|
投稿日時: 2003-02-19 03:03
masasです。
↑に書いた方法でも出来ますが、もっとスマートな方法があります。 DataGridのItemDataBoundイベントで、削除ボタンを取得し btn.Attributes.Add("onClick", "return confirm('メッセージ');"); を入れるだけです。 |
|
投稿日時: 2003-02-19 10:12
masas さん大変ありがとう御座いました。
参考にさせて頂き、ItemDataBoundイベントに以下のコードを挿入して対処できました。 (このDataGridはCells(2)が削除のリンクボタンになっております。) e.Item.Cells(2).Attributes.Add("onClick", "return confirm('削除しますか?');") ところで、この時点で不要になってしまったコードなので本来不要かとは思いますが やはり勉強のため今後の参考にしたいので、masas さんの作成したascx.vb(cs)の サンプルコードと利用する側のaspx.vb(cs)のサンプルコードを是非見せて頂く訳には いきませんか?(私はJavaScriptは初心者なので...) |
|
投稿日時: 2003-07-02 12:24
[ メッセージ編集済み 編集者: Micky 編集日時 2003-07-02 13:12 ] |
