- PR -

CollapsiblePanelで開いた状態にする方法

投稿者投稿内容
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-03-07 17:53
いつも参考にさせて頂いております。

ASP.NETのAJAXコントロールであるCollapsiblePanelExtenderで、
画面が表示された時に畳まれた状態で表示されます。
画面初期表示時は開いた状態で、あるボタンを押した時に
閉じた状態にしたいと考えていますが、どの様にしたら良いか分かりません。

もしお分かりの方がいらっしゃいましたらお教え下さい。
宜しくお願い致します。
ugaya
会議室デビュー日: 2006/08/03
投稿数: 18
投稿日時: 2008-03-07 18:04
Collapsedプロパティをロード時に設定すれば良いのでは?
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-03-07 18:35
ugayaさん、ご回答ありがとうございます。

そんなプロパティがあったとは・・・
解決致しました。

ありがとうございます。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-03-28 10:34
教えていただいた方法でPage_Load時に以下の様に設定したのですが、
うまく制御できません。何が問題か教えて下さい。
初期表示(ポストバックではない)場合、CollapsiblePanelExtenderは開いた状態で、
ポストバック時は閉じた状態にしたいと考えています。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then
CollapsiblePanelExtender1.Collapsed = True
Else
CollapsiblePanelExtender1.Collapsed = False
End If
End Sub

宜しくお願い致します。
Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2008-03-29 02:46
引用:

kosekiさんの書き込み (2008-03-28 10:34) より:
教えていただいた方法でPage_Load時に以下の様に設定したのですが、
うまく制御できません。何が問題か教えて下さい。


Page_LoadでCollapsedを設定しても制御できないのは、CollapsiblePanelExtenderがパネルの開閉状態を記憶するように実装されているからでしょう。

CollapsiblePanel Sample
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CollapsiblePanel/CollapsiblePanel.aspx

引用:

リンク先より:
On a client postback, it automatically remembers and restores its client state.


まず、SuppressPostBackをTrueにします。これで開閉状態の記憶が抑制されます。つまり初期表示ではパネルが展開されるようになります。〈勿論CollapsedはFalseにしておきます)

その上で、CollapseControlIDにボタンのIDを設定します。これでボタンを押すとパネルが閉じるようになります。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-03-31 10:03
Teslaさん、ご回答ありがとうございます。

やりたい事をちゃんと書いていなかったので、書かせて頂きます。

検索条件を入力する欄と、検索ボタンと明細表示するGridViewがあります。
検索条件を入力する欄はCollapsiblePanelExtenderで開閉出来る様にしています。
画面表示時は検索条件を入力させるので、CollapsiblePanelExtenderは開いた状態にし、検索ボタンを押したら、閉じた状態にしたいと考えています。
検索ボタンでDBへのアクセス等を実装しています。
CollapsiblePanelExtenderの開閉は別ボタンを用意し、いつでも開閉が出来る様にしたいと考えています。(AJAXサンプルと同様の方法にしています。)

その為、開閉は別ボタンで実装する必要がある為、CollapseControlIDに検索ボタンを割り当てる事ができません。
SuppressPostBackをTrueにしてもPage_Loadで設定しても駄目なんですね。

他に良い方法があったら教えて下さい。

よろしくお願い致します。
Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2008-04-02 12:17
調べてみましたが、この仕様を実現する方法はわかりませんでした。

kosekiさんも書いている通り、CollapseControlIDに複数のIDを割り当てることができませんので、実現するのは難しいと思います。
koseki
ベテラン
会議室デビュー日: 2002/08/01
投稿数: 93
投稿日時: 2008-04-02 12:25
Teslaさん、ご回答ありがとうございます。

了解しました。
色々やってみましたが、無理そうですね。

開きっぱなしにして、邪魔だったらユーザに毎回閉じてもらう事にします。

ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)