バックグラウンド:
ASP.NET2.0のjquery1.3.2でjqueryblockui2.31を使用しています。
ダイアログを使用して、(通常は)非表示のDIVをポップアップモーダルダイアログの一種として表示し、ASP.NETサーバー側のコントロールを使用しています(簡単にするために、asp:Button)。AJAXはありません、または存在することが保証されていません。
jquery blockuiが行うことの1つは、いくつかのhtml要素を渡すと、ページ内のその場所からコントロールを削除し、それを本文に追加することです。
ASP.NET 2.0は、ポストバックするコントロールを$(#aspnetForm)で見つけることができる形式にすることを望んでいるようです。jquery blockuiはそれらを本体に移動しただけなので、ポストバックは起動しません。
このメソッドはインスタンスメソッドであり、静的としては機能しない可能性があります(ユーザーおよびページコントロールにログインした参照...)
私はいくつかの掘り下げを行いました:
jquery blockuiを変更してフォームに追加しました(そしてセレクターと格闘してブロックを削除しました)が、IE6とIE7を中断します-オーバーレイはフォームから始まり、ダイアログ全体が中心から外れて表示されます。オーバーレイを非表示にすることはできません。IE固有のcssとIE固有のスクリプトをいじるのは本当に嫌です。
ボディとフォームにいくつかのレイヤーを追加しようとしましたが、ボディレイヤーは常にフォームレイヤーの上に表示されます(したがって、入力をブロックする不透明なレイヤーは、表示しようとしているdivの入力もブロックします)。
解決策は、divに非表示のダミーアンカーを呼び出して、元のボタンのポストバックを実行させることだと思います。sontekは、関連する質問への回答でこれを提案しました。
私の実際の質問:
私は偽のポストバックトリックで正しい方向に進んでいますか?モーダルダイアログ機能をjqueryに依存している場合は、フォールバックについて心配する必要はないと思います。
または、フォーム追加のスタイリングをいじくりまわす必要がありますか?