0

ajaxToolkit:CollapsiblePanelExtenderと、それが制御する2つのasp:UpdatePanelsがあります(一方のパネルをクリックすると、もう一方のパネルが展開されます)。

開始するタイマーからAJAX更新を行うまではうまく機能します。ページが更新され、CollapsiblePanelExtenderが折りたたまれます:-P

拡大しているパネルの状態を維持するためにこのコントロールを取得する方法を知っている人はいますか?

4

2 に答える 2

3

私はこの正確な問題に遭遇したことを覚えています。

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

于 2011-11-12T03:34:53.070 に答える
0

私は別の状況でこれに遭遇しました...

  1. パネルが折りたたまれているタイマーが刻み、部分的なポストバックが始まります
  2. ポストバックの進行中にユーザーがパネルを展開
  3. 部分的なポストバックが終了し、ビューステート維持されているため、パネルの状態は「折りたたまれた」状態に戻ります。部分的なポストバックの開始時の状態に戻るだけです。

これをどのように処理するかは状況によって異なりますが、私の場合、ユーザーがパネルを展開または折りたたんだときに非同期ポストバックをキャンセルします。数秒ごとに現在の値を更新するタイマーなので、とにかくすぐに再び実行されるので、1つを「失う」ことができます。

または、パネルのadd_expandingイベントとadd_collapsingイベントを使用し、Sys.WebForms.PageRequestManager.getInstance()。get_isInAsyncPostBack()をチェックすることで、ポストバックの期間中、展開/折りたたみ機能を無効にすることができます。

于 2016-03-14T18:31:32.550 に答える