2011-01-20
OnClientClickとValidatorの関係
実行ボタンのOnClientClickプロパティに"return Confirm('実行しますか?')"を設定。
テキストボックスAに、RequiredFieldValidator(必須バリデーター)を設定。
このバリデーターのEnableClientScriptプロパティをtrueにする。
この状態だと、実行ボタンを押したとき、テキストボックスAが空白でも、
return Confirm('実行しますか?')が実行され、
「はい」と押した後に、サーバー側で検証が行われる。
つまり、クライアントでの検証が行われない。
それを回避するために、
ASP.NET Ajax Control Toolkitの「ConfirmButtonExtender」があるんだけど、
参考:[ASP.NET AJAX]ConfirmButtonコントロールでボタン・クリック時に確認ダイアログを表示するには?[2.0のみ、C#、VB] − @IT
上の記事によると、このExtenderなら、ConfirmOnFormSubmitプロパティをtrueにすることで、検証OK後にOnClientClickが実行されると書かれてある。
なんだけど・・・・なぜか、この通りにならず・・・
必ずOnClientClickの後にサーバーでの検証チェックになってしまう。。。
いろいろ試してみたけど、よく原因がわからないので、
結局OnClientClickに自作クライアント関数をセットして
バリデーターがNGならfalse、OKなら「Confirm('実行しますか?')」することにした。
クライアントでValidatorを実行する方法
ASP.NETのValidatorをjavascriptから呼び出す - ぷろぐらまさんの忘れないようにメモ書き
- 3 http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr:lang_1ja&q=gridview+イベント順&btnG=検索&aq=f&aqi=&aql=&oq=
- 1 http://d.hatena.ne.jp/diarylist?of=0&mode=rss&type=public
- 1 http://d.hatena.ne.jp/manymanytips
- 1 http://k.hatena.ne.jp/keywordblog/ASP.NET
- 1 http://www.google.co.jp/hws/search?hl=ja&q=cookie+場所 windows7&client=fenrir&channel=&adsafe=off&safe=off&lr=lang_ja
- 1 http://www.google.co.jp/search?hl=ja&biw=1489&bih=893&q=ブラウザ+キャッシュ+無効化&aq=1&aqi=g2&aql=&oq=ブラウザ キャ?%8
- 1 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=datatable+追加 同じ&aq=f&aqi=&aql=&oq=
- 1 http://www.google.co.jp/search?hl=ja&lr=lang_ja&biw=1004&bih=617&rlz=1R2ADFA_jaJP403&as_qdr=all&tbs=lr:lang_1ja&q=net.framework4+サイト+iis6&aq=f&aqi=&aql=&oq=
- 1 http://www.google.co.jp/search?hl=ja&q=gridview+イベント 発生順序&lr=lang_ja
- 1 http://www.google.co.jp/search?hl=ja&q=microsoft+ajax+extension&lr=lang_ja