C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: サーバーサイド処理中時に確認ダイアログを出して戻ってくる方法


(過去ログ 113 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■66673 / inTopicNo.1)  サーバーサイド処理中時に確認ダイアログを出して戻ってくる方法
  
□投稿者/ るぷ犬 (7回)-(2013/05/14(Tue) 22:33:39)

分類:[.NET 全般] 

度々お世話になっております。

【開発環境】
VS 2010
VB.NET 2010
ASP.NET 4.0


【質問内容】
ページ上のボタンを押下すると、そのボタンにクリックイベントで、サーバーサイドの処理が走ります。
その処理は
@チェック処理(サーバー側に問い合わせて、各条件によって、alertを出力するJSをRegisterStartupScriptしている。)
ADBへの保存処理

今までは、alertしかなかったのですが、@の処理の最後にある条件によって、
Confirmを出力するJSをRegisterStartupScriptしようとしています。

しかし、通常、サーバーサイドの処理に戻ってくる方法はよく、ネットでは
document.getElementById("<%=btnXXXXXXXX.ClientID %>").click();
のようにしていますが、これでは、また同じ処理に入ってしまいます。(きっと、無限ループ?)

また、戻ってくる先もボタンのクリックイベントに戻すのか、
チェック処理(メソッド)にもどすのか。。。

チェック処理(メソッド)に戻すと、呼び出し先って、保証されるのか。。。など。

よくわからない状態です。

どのように、処理を回せばよろしいのでしょうか。



引用返信 編集キー/
■66692 / inTopicNo.2)  Re[1]: サーバーサイド処理中時に確認ダイアログを出して戻ってくる方法
□投稿者/ Mira (3回)-(2013/05/17(Fri) 08:44:31)
> しかし、通常、サーバーサイドの処理に戻ってくる方法はよく、ネットでは
> document.getElementById("<%=btnXXXXXXXX.ClientID %>").click();
> のようにしていますが、これでは、また同じ処理に入ってしまいます。(きっと、無限ループ?)

@とAの間に「はい、いいえ」のメッセージを出力して
選択した状態によってAの処理を変化させたいということですか?

(1)同じボタンのイベント内で処理したのであれば
HiddenField等で状態を格納しつつclickすればよいと思います
後はサーバー側の処理でHiddenFieldの状態で処理を判断すればいいです

(2)ボタンを分けたいのであれば Styleのvisibilityをhiddenにしたボタンを二つ用意して
confirmの戻り値でクリックするボタンを変化させればいいです

(3)JavaScriptを使用せずに実装する方法もあります
・一番わかりやすいのはWizardコントロール
・MultiViewコントロールを使用して状態を遷移させる
・AjaxControlToolkitのModalPopupコントロール

(3)が一番安全だと考えます
(1)と(2)はクライアント側から不正なRequestが送信されれば@の状態に関係なくAが実行できるからです、たぶん^^;

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -