Domanda

Non riesco a capire come dire al accordioncontainer per impostare l'altezza del suo riquadro di fisarmonica per l'auto in modo che l'altezza del riquadro è dinamico a seconda del suo contenuto.

Nel codice seguente sto aggiungendo due riquadri a un accordioncontainer. Uno ha un'altezza di 10px e un altro ha 90px ma in entrambi i casi l'altezza del riquadro fisarmonica è calcolato a 10px. Sembra che il suo prendere sempre l'altezza del primo.

var accordionContainer = new dijit.layout.AccordionContainer({'id':'accContainer'}).placeAt("test");
var accordPane = new dijit.layout.ContentPane({"title": "test", "content":"<div style='height:10px'>sdfsdfsdf</div&gt;"});
var accordPane2 = new dijit.layout.ContentPane({"title": "test1", "content":"<div style='height:90px'>sdfsdfsdf</div>"});

accordionContainer.addChild(accordPane);
accordionContainer.addChild(accordPane2, 1);
accordPane.startup();
accordPane2.startup();
accordionContainer.startup();
accordionContainer.selectChild(accordPane2);

Sto usando dojo 1.3.2

È stato utile?

Soluzione 2

I escludeva la funzione _getTargetHeight di dijit.layout.AccordionContainer e torno sempre 'auto' per l'altezza. Animazione di vetri scorrevoli non funziona correttamente, ma non è così evidente.

_getTargetHeight: function(/* Node */ node){
// summary:
//For the given node, returns the height that should be
//set to achieve our vertical space (subtract any padding
//we may have).
//This is used by the animations.

//var cs = dojo.getComputedStyle(node);
//return Math.max(this._verticalSpace - dojo._getPadBorderExtents(node, cs).h, 0);
return 'auto';
}

Altri suggerimenti

Non è attualmente possibile. Ho scritto un codice di blog / campione di spiegare perché e come generare un gruppo di TitlePane di che si espandono a loro altezza naturale (piuttosto che l'altezza del contenitore per l'AccordionContainer):

http: // www. sitepen.com/blog/2008/10/21/quick-fixes-and-dojo-support/

Si richiede che un singolo widget di TitleGroup (personalizzato, codice blog), e mettendo dentro di TitlePane. Ogni si comportano per lo più come un AccordionPane (con title = "" attributi, href = "" capacità di carico, ecc) e delegati titolo scatta per gestire lo stato aperto / chiuso di fratelli.

provare a impostare le dimensioni sul contenitore di fisarmonica stessa per una dimensione che è abbastanza grande da contenere il vostro soddisfare più i riquadri titolo necessarie, per es.

#accContainer{
  height: 120px;
  width: 200px;
}

L'avvio () chiamata sul contenitore dovrebbe iniziare i riquadri bambino per voi.

Ora si può anche semplicemente usare dijit.TitlePanes senza container a tutti. È possibile passare open: false quando si crea un'istanza i vetri a partire bene chiuse. Credo che li racchiude in un dojox.widget.TitleGroup emulerà il comportamento di avere 1 aperto alla volta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top