- - PR -
サブ画面からのsubmitによるValidator動作について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-10 18:18
当方、VB.NET による ASP.NET 1.1 アプリケーションを開発しています。
RequireFieldValidator コントロールなどを貼り付けたメイン画面から、JavaScript の window.open() でサブ画面を表示させています。 そのサブ画面では、画面に貼り付けたボタンをクリックすると、Session 変数に値をセットした後、JavaScript にて、親のメイン画面に submit() して、画面を閉じます。 メイン画面は、submit() されると、画面を再描画して Session 変数にセットされた値を画面上に表示させます。 このようなアプリケーションを作成中です。 ここで質問なのですが、サブ画面から submit() されてメイン画面を表示し終わった時に、メイン画面上に配置した Validator のチェックが効いてしまい、エラーメッセージが表示されてしまいます。 サブ画面から親画面への submit() で、Validator のチェックを回避させることは出来ますでしょうか? 助言など頂けますと助かります。よろしくお願いいたします。 | ||||||||
|
投稿日時: 2006-10-11 10:55
例えば再描画用のボタンを画面に追加し、
CausesValidation プロパティを false に設定してみてはどうでしょうか。 | ||||||||
|
投稿日時: 2006-10-11 11:18
かるあ様、ありがとうございます。
ここ数日ずっと悩んでいるのですが、解決の糸口も掴めず・・・(T-T) 出来れば、再描画専用のボタンを設置せずに、実現したいと思っています。 サブ画面から、メイン画面を再描画されるために、サブ画面上にコーディングした JavaScript で、 window.opener.document.Form1.submit(); と発行すると、親画面の方が再描画するのですが、再描画後の画面に Validator が効いた(エラーメッセージが表示された)状態になってしまっています。 確かに、生成された HTML ソースコードを見てみると、form タグに onsubmit="if (!ValidatorOnSubmit()) return false;" って生成されているので、エラーが表示されてしまうのは仕方ないと思うのですが・・・。これを、CausesValidation プロパティを false にしたときと同じように、サブ画面からの submit でも生成しないようにすることって出来るのでしょうか? そもそも、サブ画面から親画面を再描画させる方法として、submit を発行する事自体が不適なのでしょうか? もしご存じでしたら、ご教授ください。よろしくおねがいいたします。 | ||||||||
|
投稿日時: 2006-10-11 11:57
すみません、なんとかする方法はあるのかも知れませんが思いつきません。
サブ画面側 でデータベースを更新してその値を元に再描画している? それなら サブ画面 の formload 時に 親画面 の情報も一緒に持ってきて サブ画面 から 親画面に値を書き込んであげればいけそうですが。 項目が多いと大変ですね。。。 _________________ かるあ のメモ と スニペット | ||||||||
|
投稿日時: 2006-10-11 14:29
かるあ様
たびたび、助言ありがとうございました。 あれからも submit の前に JavaScript で、 Page_ValidationActive = false; としてみたり、いろいろ試行錯誤してみているのですが、どれもうまくいかず、完全に手詰まりになってしまいました。 | ||||||||
|
投稿日時: 2006-10-11 22:19
親画面内の関数を呼び出して、関数内で submit。
その時、validator を off にして回る。 または。post するから validator が走るので、get すればいい。
validator を配置すると、form の onsubmit にクライアント スクリプトを動作させるようになって、まずクライアント側でチェック。このとき、チェックに引っかかれば、submit はされません。 クライアント側が通ると submit されて、サーバ側でもう一度チェック ルーチンが呼ばれる。そして、クライアントに結果が返される。 _________________ |
1