- - PR -
ASP.NETで、確認ダイアログを条件付で表示させる方法
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-11 22:47
私がやりたい処理について説明します。
例えば、名前と電話番号を入力する入力画面で、名前と電話番号を入力してから、保存ボタン押さずに、終了ボタンを押した時は、終了の確認ダイアログを出します。終了ボタンの前に、保存ボタンを押した時は、確認のダイアログは表示しないで、メニュー画面へ遷移するような動きをプログラムしたいと考えています。 | ||||||||||||
|
投稿日時: 2005-04-12 05:26
どこまで実現出来てるのかいまいちわかりません。つまり、どの部分で出来なくて
(行き詰って)困ってるのかがちょっとわからないです。
んですかね。ということは「confirmなしでOK時処理」はクライアントでは何も しなくて(既定のSubmitだけで)いいわけですね。
onclickにダイアログを表示するスクリプトを埋めておいて、保存ボタンのClick イベントハンドラではonclickで何もしない(submitするだけ)ようにすればいいと思い ます。しかし、これがTextBoxのチェンジイベントとどう関係があるのかわかりません。
TextBoxの値がサーバーが送出した時の値と変わっていたら)。で確認ダイアログを出す のはブラウザですよね。「チェンジイベントが走った時にWebコントロールのボタンで 確認ダイアログを表示」はちょっと意味がわかりません。TextChangedが発生して クライアントに送出した瞬間にダイアログを出したいと言うことなら (javascriptの)onclickでは実現できませんね。 参考(特にこの回)。ここも。 [ メッセージ編集済み 編集者: べる 編集日時 2005-04-12 05:30 ] | ||||||||||||
|
投稿日時: 2005-04-12 10:50
ぼのぼのです。
コードが提示されてないので現在どんな実装になっているのかわかりませんが、流れから予測するにaspxの方に直接javascriptを書いているのではないでしょうか?整理すると ・特定の条件の時だけダイアログを表示させたい ・ダイアログを表示させるのはjavascript(クライアントサイド) ・条件を持っているのはサーバサイドの変数 ・クライアントサイドからサーバサイドの変数を直接見れない ってことで悩んでるわけですよね? 解決方法は2つあると思います。1つ目は、たつごろーさんが仰ってる通り、aspxの方には予め何も書かないでおいて、aspx.vbの方でjavascriptを動的に生成する方法。ここが参考になるでしょう。 .NET TIPS[ASP.NET]ページにJavaScriptを埋め込むには? 2つ目は、サーバサイドの変数をクライアントサイドから見えるものに反映して、クライアントサイドからはそれを見るようにする方法。具体的にはHTMLコントロールのHiddenをサーバコントロールにして使います。 | ||||||||||||
|
投稿日時: 2005-04-14 12:12
みなさんありがとうございました。
参考なるアドレスの内容も読みながら、なんとか解決しました。 やり方ですが、 サーバコントロールのテキスト Private Sub xx_TextChanged(ByVal sender As System.Object,..... viewstate("chgflg") = 1 サーバコントロールのボタン Private Sub xxxx_Click(ByVal sender As System.Object,.... If viewstate("chgflg") = 1 Then RegisterStartupScriptでJavaScript作成(スクリプト内で画面遷移) Else Response.Redirect("xxx.aspx") End If このような感じです。 問題がありそうでしたら、書き込みお願いします。 | ||||||||||||
