2009-04-13 27 views
0

私のページにasp.net ajax CollapsiblePanelExtenderコントロールがあります。このコントロールが設計された方法、あなたはそれを閉じるには、パネルと別の制御を開くために一つの制御を指定することができます。彼らは、この例にあるようExpandControlIDとCollapseControlIDは、同一である場合CollapsiblePanelExtenderで複数の閉じるボタンを使用するにはどうすればよいですか?

<ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server" 
    TargetControlID="panelStuff" 
    ExpandControlID="butToggle" CollapseControlID="butToggle" Collapsed="True" 
    SuppressPostBack="true" /> 

が、その後、コントロールパネルを切り替えます開いたり閉じたりする。

でも、ユーザーがこのパネルを閉じることができる別のコントロール(panelStuff内)があります。理想的には、私は指定したいと思います:

CollapseControlID="butToggle,butClose" 

どのようにこれを行うには?これを達成するための

答えて

2

一つの方法:

CollapsiblePanelExtenderにBehaviorIDを割り当てます

<ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server" 
    BehaviorID="cpeForBehavior" 
    TargetControlID="panelStuff" 
    ExpandControlID="butToggle" CollapseControlID="butToggle" Collapsed="True" 
    SuppressPostBack="true" /> 

は、所望の動作を実行するJavaScript関数を作成します。

function closeCpe() { 
    $find("cpeForBehavior")._doClose(); 
} 

は、イベントハンドラ内の関数を実行します。

<input type="button" id="MyOtherButton" onclick="closeCpe();" /> 
+0

どこで_doClose()を見つけましたか?このようなコマンドのためのどこかにドキュメントがありますか?もし私が拡大して崩壊したくないのであれば?私はdoOpen()がうまくいくと思っていますが、私が知らなかったらどうしますか? – adinas

+0

adinas:私はどこに書類があるのか​​分かりません。これらはエクステンダーのための文書化されていない基礎的なサポート関数かもしれません。つまり、_doOpen()と_doToggle()を使用することもできます。 – HectorMac

1

上記と同じですが、私はトグルを探していました。 _doToggle()はうまくいかないので参考にしてください:

function closeCpe() { 
      var cpe = $find("cpeForBehavior"); 

      if (cpe.get_Collapsed()) { 
       cpe._doOpen(); 
      } 
      else { 
       cpe._doClose(); 
      } 
     } 
関連する問題