
◆やろうとしていること
JQuery+JQueryMobile+ASP.net2.0 を使用して、
カレンダーから日付を選択させるモーダルウィンドウを作ろうとしています。
◆質問内容
モーダルウィンドウを作り、そっちでの入力値を親に返そうという処理を実装しようとしたとき、
ASPのイベントも、JQueryのイベントも、処理が終わったら「呼び元に戻す」ということをしていると思います。
で、おそらく、
(1)JQueryの$("buttonのセレクター").click でのハンドル
(2)ASP.NETでの、with Event コントロール名、handles イベント名での、イベントハンドルと
があり、以下の2つの機能をうまく融合できなくて困っています。
A:モーダルウィンドウの作成は、JQueryでは、結局は同じHTML内に、DOMでコントロールが追加・更新されるだけで、<HTML></HTML>の単位ではなく、<data-role=page>の単位で書き換えをする。
B:モーダルウィンドウを出そうとしているため、<HTML></HTML>の単位で、
ウィンドウが作成され、ユーザが見ているページのURLは、「親ウィンドウ」のURLとは異なる。
上記認識で合っていますでしょうか?
宜しくお願い致します。
******************************************************
◆解決の方向性?
案1:JQueryUIなり、JQuery Mobileのカレンダーを探し、それだけを使う。
その際は、ASP.NETでは、ASP:Clender などは使わない。
(asp:Calenderや、asp:HyperLink等は使わない。同じ画面のURLで処理ができなくなるため)
案2:JQueryでの「$("buttonのセレクター").click でのハンドル」など、
動いてしまうイベントを、かたっぱしから、処理がキャンセルされるようにする。
(jQueryのDOMの差し替えを、全て無効にするため。)
⇒ すべてのイベントを把握&実装するのは現実ではないた、この案は取れない。
上記認識で合っていますでしょうか?
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
ASP.NETの特徴は、
・サーバコントロール
・ビューステートによるコントロールの値保持
・ポストバック
です。イベントについては、かつてのWindowsフォームのプログラミングスタイルで移行できるように、プログラム的に「イベントハンドラ」の形態をとっているだけで、内実はポストバックと、サーバ側処理の連携を隠蔽したものです。
javascript側のイベントハンドラとは動作原理が全く異なります。
ASP.NET Ajaxはまたちょっと違った内容ですが、フォーム全体をポストバックすることに違いはありません。戻りによる画面書き直しを画面の一部に止め、Ajax「ふう」の遷移を実現するものです。
で、jQueryとASP.NETの連携といいますと、DateTime Pickerを例にしますと、クライアントサイド側で取得した値をサーバコントロールにセットし、後はWebフォーム側でポストバックするか、javascriptからポストバックまでを起こすような形式がベストだと思います。
jQueryでデータ送信まで行う手法($.Ajaxなど)もありますが、それですとASP.NETを使うメリットは全くなく、ASP.NET MVCを使うことになるでしょう。
また、ASP.NET Ajaxを使うのであれば、jQuery連携は煩雑なだけで、ASP.NET Ajax側のコントロールを使うほうが合理的でです。
最後に一言。
ASP.NETとjQueryを連携して使う場合の本命は、ASP.NET MVCです。
また、Webフォームの場合も、サーバコントロールのIDを操作できる、ASP.NET 4.0の採用がベストです。
ASP.NET 2.0なんか使ってはいけません。javascript連携は良くありません。
詳しいご回答、ありがとうございます!
Jqueryで値をセットしておき、最後に1回だけサーバに送信するようにしました。
今、HTML5とCSS3を使っているので新しいinput typeが対応しておらず、不便を感じていました…
ASP.NET MVC、調べてみます
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
エクセル・VBA CheckBoxのオブ...
-
chr関数の呼び出しで「プロ...
-
エクセルVBAでオプションボタン...
-
OCXって何ですか?
-
VBA ユーザーフォームの Keypre...
-
'ckbl' コントロールは作成され...
-
Excel VBA で Richtextboxを使...
-
カメラスクロールするのを動画...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
Labelコントロールの(左右)余...
-
チェックボックスをオンにした...
-
C#で角が丸いテキストボックス
-
全てのオブジェクトのプロパテ...
-
VBAのエラーについて、”実行時...
-
ユーザーフォームで動的(Me.Con...
-
TabStripコントロールの上にLab...
-
VB2005でZorderを実現させるには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでオプションボタン...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
EXCELでactivexコントロールを...
-
VBA ユーザーフォームの Keypre...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
チェックボックスをオンにした...
-
ユーザーフォームで動的(Me.Con...
-
chr関数の呼び出しで「プロ...
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
Excel VBA で Richtextboxを使...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
C# Form上に配置されたコントロ...
-
エクセル コントロールツール...
-
変数をコントロール型で使用す...
-
Groupboxの配下のコントロール...
おすすめ情報