Quelle est la meilleure façon d'ouvrir un programme panneau intérieur Dijit accordéon Container
-
19-09-2019 - |
Question
Je suis en train d'accordéon vitres ouvertes et fermer programatically. Voici la version simplifiée de mon code. Même si je mets le premier volet est sélectionné pour faux et et le second volet est sélectionné sur true, seul le premier volet s'ouvre quand il charge sur le navigateur (FF3).
var accordionContainer = new dijit.layout.AccordionContainer().placeAt("test");
var accordPane = new dijit.layout.ContentPane({"title": "test", "content":"hello"});
var accordPane2 = new dijit.layout.ContentPane({"title": "test1", "content":"hello1"});
accordionContainer.addChild(accordPane);
accordionContainer.addChild(accordPane2, 1);
accordPane.startup();
accordPane2.startup();
//accordionContainer.selectChild(accordPane2);
accordionContainer.startup();
accordPane.selected = false;
accordPane2.selected = true;
La solution
Vous pouvez le faire comme ceci:
accordionContainer.selectChild( accordPane2 );
En supposant que vous utilisez 1.3 dojo.
dijit.layout.AccordionContainer
est une sous-classe de dijit.layout.StackContainer
, qui a selectChild
défini.
Je mis en place une démo page où vous pouvez voir ce code en action
Si vous appeliez selectChild
avant startup
, qui pourrait provoquer l'erreur que vous voyez depuis le widget n'a pas été dans un état « complet ». (Désolé, a raté le code commneted avant que j'ai posté réponse originale)