2010-11-24 9 views
1

J'utilise un CollapsiblePanelExtender avec une case à cocher. Je voudrais agrandir/réduire le panneau lorsque la case est cochée et décochée. Cela fonctionne mais le problème que je rencontre est que lorsque la page se charge, le panneau n'est pas en expansion ou en réduction en fonction de l'état qui est chargé à partir de la base de données. En d'autres termes, définir la propriété Collapsed du CollapsiblePanelExtender int sur page_load à true ou false ne semble pas l'affecter.CollapsiblePanelExtender ne réagit pas

C'est ce que j'ai:

<asp:CheckBox runat="server" ID="ServiceCheckBox" AutoPostBack="true" Enabled="true" 
OnCheckedChanged="CheckBoxCheckedStatusChanged" /> 

<asp:CollapsiblePanelExtender 
ID="ServiceCollapsiblePanelExtender" 
runat="server" 
TargetControlID ="ServicePanel" 
CollapsedSize ="0" 
Collapsed ="true" 
CollapseControlID ="ServiceCheckBox" 
ExpandControlID ="ServiceCheckBox" > 

//codebehind 
    protected new void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
     ServiceCheckBox.Checked = GetState(); 

     ServiceCollapsiblePanelExtender.Collapsed = !ServiceCheckBox.Checked; 
     } 
    } 

Je préfère veux obtenir ce travail avec les événements au lieu de scripts serverside clientside (js). Quelqu'un at-il une idée sur la façon de fonctionner?

Répondre

2

Selon this link vous devez changer aussi le ClientState du CollapsiblePanelExtender:

if(ServiceCheckBox.Checked) 
{ 
    ServiceCollapsiblePanelExtender.Collapsed = false; 
    ServiceCollapsiblePanelExtender.ClientState = "false"; 
} 
else 
{ 
    ServiceCollapsiblePanelExtender.Collapsed = true; 
    ServiceCollapsiblePanelExtender.ClientState = "true"; 
} 
Questions connexes