ajaxToolkit:CollapsiblePanelExtenderと、それが制御する2つのasp:UpdatePanelsがあります(一方のパネルをクリックすると、もう一方のパネルが展開されます)。
開始するタイマーからAJAX更新を行うまではうまく機能します。ページが更新され、CollapsiblePanelExtenderが折りたたまれます:-P
拡大しているパネルの状態を維持するためにこのコントロールを取得する方法を知っている人はいますか?
ajaxToolkit:CollapsiblePanelExtenderと、それが制御する2つのasp:UpdatePanelsがあります(一方のパネルをクリックすると、もう一方のパネルが展開されます)。
開始するタイマーからAJAX更新を行うまではうまく機能します。ページが更新され、CollapsiblePanelExtenderが折りたたまれます:-P
拡大しているパネルの状態を維持するためにこのコントロールを取得する方法を知っている人はいますか?
私はこの正確な問題に遭遇したことを覚えています。
CollapsiblePanelExtenderには、ViewStateで追跡および維持されていないように見えるプロパティClientStateがあります。
HiddenField(または必要に応じてViewStateまたはSession)の値を手動で追跡および維持し、AJAXの更新時にCPE.ClientStateをその値に復元できるはずです。
UPDATECollapsed
プロパティとClientStateプロパティの両方を設定するだけでよいことを示唆するリソースが見つかりました。
http://weblogs.asp.net/ashicmahtab/archive/2008/11/21/act-collapsiblepanelextender-how-to-collapse-expand-programmatically.aspx
私は別の状況でこれに遭遇しました...
これをどのように処理するかは状況によって異なりますが、私の場合、ユーザーがパネルを展開または折りたたんだときに非同期ポストバックをキャンセルします。数秒ごとに現在の値を更新するタイマーなので、とにかくすぐに再び実行されるので、1つを「失う」ことができます。
または、パネルのadd_expandingイベントとadd_collapsingイベントを使用し、Sys.WebForms.PageRequestManager.getInstance()。get_isInAsyncPostBack()をチェックすることで、ポストバックの期間中、展開/折りたたみ機能を無効にすることができます。