Cosa è il modo migliore per aprire programmazione un pannello interno della fisarmonica Dijit Container
-
19-09-2019 - |
Domanda
sto cercando aperti e chiudere i riquadri fisarmonica programatically. Ecco la versione semplificata del mio codice. Anche se ho impostato la prima del riquadro selezionato per falso e ed il secondo riquadro di selezionato su true, solo il primo riquadro si apre quando viene caricato sul browser (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;
Soluzione
Si può fare in questo modo:
accordionContainer.selectChild( accordPane2 );
Supponendo che si sta utilizzando dojo 1.3.
dijit.layout.AccordionContainer
è una sottoclasse di dijit.layout.StackContainer
, che ha selectChild
definito.
Ho messo su un href="http://jsbin.com/elimo" rel="noreferrer"> demo pagina
Se stavi chiamando selectChild
prima startup
, che potrebbe causare l'errore si stava vedendo in quanto il widget non era in uno stato 'completa'. (Scusate, perse il codice commneted prima ho postato la risposta originale)