UpdatePanel
の応答がクライアントによって受信され、ページにレンダリングされると、正確には何が起こるでしょうか?
この質問の動機は、この質問とこの jQueryUI ticketで提起された問題の適切な解決策を見つけることです。基本的に、jQueryUI の日付ピッカーが にアタッチされていて、その更新時に開いているとTextBox
、奇妙なことが起こります。UpdatePanel
UpdatePanel
この質問とそのリンクされた記事は、それがこれ以上のものではないことを示唆しています:
document.getElementById('updatePanelContainer').innerHTML = responseHtml;
しかし、私はこのjsfiddleでそれを試しましたが、日付ピッカーはDoneボタンを除いて完全に機能しなくなりました。部分的なポストバックで私が見ている動作は、日付ピッカーがまだ機能していることですが、その状態はその下から取り出されています。jQueryUI の縮小されていないコードを使用してデバッグすると、プロパティdrawYear
とdrawMonth
プロパティの値が失われる (0 になる) ことがわかります。
Firebug をいじって、部分的なポストバックが発生するのを観察していると、ページに次のような変更があることに気付きました。
- Firebug の [DOM] タブにある入力のプロパティの一部は、次のようになくなります。
- アクセスキーラベル
- 親要素
- クライアントの高さ
- クライアント左
- クライアントトップ
- クライアント幅
- 形
- 次の兄弟
- オフセット高さ
- オフセット左
- オフセット親
- 上オフセット
- オフセット幅
- 親ノード
- 前の要素兄弟
- 前兄弟
- スクロールの高さ
- スクロール幅
- ページの下部に、ASP.NET 情報を含む非表示フィールドを含む一連の非表示
span
要素が追加されます (__VIEWSTATE に似ているようです)。 - 要素の内容が
update
少しずつ変化する (スペースとタブなど)
更新:再現を機能させることができました。鍵となるのは、バインド先の入力を再作成した後に日付ピッカーを再初期化することです。上記の jsfiddleの最新リビジョンを参照してください。ただし、部分的なポストバックが行う特別なことがあれば知りたいです。