1

UpdatePanel (UpdateMode="Conditional", ChildrenAsTriggers="false") にタイマーが埋め込まれた asp.net ページがあります。タイマーは、そのページの一部のコンポーネントを数秒ごとに更新する役割を果たします。

ページにはいくつかの HyperLink コントロールもあり、クリックすると JQueryMobile ダイアログが開きます (data-rel="dialog")。問題は、私が言及したタイマーが数秒ごとにポストバックを引き起こすことです。そのため、ダイアログを開いてから閉じると、その後の最初のそのようなポストバックにより、ダイアログがもう一度開きます。

私が言及したハイパーリンクの別の属性として rel="external" を使用すると問題は解決しますが、これは私にとっては解決策ではありません。これにより、AJAX を使用して (現在のページの上にあるかのように) ダイアログ ページを表示する代わりに、ダイアログ ページに完全にリダイレクトされます。

私の考えは、ハイパーリンクがクリックされたときにタイマーを停止することでした。これで問題は解決しますが、ダイアログが閉じたときにタイマーを再度開始する方法がわかりません。JQueryMobileダイアログがいつ閉じられたかを検出することは可能ですか? ばかげているように聞こえますが、これ以上のアイデアは思いつきません。手伝ってくれませんか?

したがって、基本的に、タイマーティックの後に JQueryMobile ダイアログページが 2 回目に表示されることは望ましくありません。それを達成する方法を教えてください。

4

1 に答える 1

2

asp.net WebフォームとUpdatePannel?を備えたjQuery Mobile これは恐ろしい組み合わせのように聞こえます。

jQueryMobileとWebフォームは基本的に一緒にうまく機能しません。<form />Webフォームがすべてのコントロール(およびほとんどのコンテンツ)をラップする単一の要素を必要とするという特定の問題。jQuery Mobileは、ajaxの読み込みを介して「仮想」ページでDOMを構築しようとします。これは、各ページテンプレート内にある個々のフォームではなく、フォーム全体を送信することにより、PostBackモデルを破ります。今そこに投げUpdatePanelsます...

あなたの唯一の望みは、シングルページテンプレートのみを使用data-ajax="false"し、リンクとフォームの両方ですべてのajaxロードを無効にすることです。そして、ただノーと言おうUpdatePanels

asp.net MVCを使用すると、これらの問題をより細かく制御できます。

于 2012-11-15T17:09:24.837 に答える