2011-01-12 4 views
0

Ich habe eine Inhaltsseite und ein Benutzersteuerelement. Die Benutzersteuerung verwendet CollapsiblePanelExtender. Ich habe die folgende JavaScript-Funktion auf "onmouseout" des Panels geschrieben.

<script language="javascript" type="text/javascript"> 
function doToggle() 
{ 
var cpe = $find("CollapsiblePanelExtender1.ClientID"); 
//cpe._toggle(); 
if (!cpe.get_Collapsed()) { 
cpe._doClose(); 
} 
} 
</script> 

Diese Conent-Seite ist Teil der Masterseite. Wenn ich den Code ausführe, erhalte ich JavaScript-Fehler. cpe ist immer null. Wie wird $ find für CPE für ein Masterseiten-Szenario verwendet? Ich habe auch document.getElementById versucht und die Client-ID übergeben, trotzdem hat es nicht funktioniert. Bitte helfen Sie.

Antwort

1

Problem gelöst durch Hinzufügen von BehaviorID = "cpe" zu CollapsiblePanelExtender.

<ajax:CollapsiblePanelExtender ID="cpe" runat="Server" BehaviorID="cpe" 
    TargetControlID="SettingsContentPanel" CollapsedSize="0" Collapsed="True" ExpandControlID="SettingsTitlePanel" 
    CollapseControlID="SettingsTitlePanel" ScrollContents="False" ImageControlID="btnSettingsPopup" 
    SuppressPostBack="true" ExpandedImage="~/images/collapse.jpg" CollapsedImage="~/images/expand.jpg" 
    ExpandDirection="Vertical" AutoCollapse="false" AutoExpand="false" /> 

Und dann finden werden $ Funktion der Lage, die Kontrolle zu finden, Code wie:

function doToggle() 
{ 
    var cpe = $find("cpe"); 
    if (!cpe.get_Collapsed()) 
    { 
     cpe._doClose(); 
    } 
} 
+0

Aber wenn ich mehrere von ihnen? wie in ListView ... dann funktioniert es nicht ... – John