Cuando la propiedad abierta de TitlePane se establece en false, no puedo agregar widgets dinámicamente al contenido.
Por ejemplo, el siguiente código no funciona.
var tp = new dijit.TitlePane({
title: "Title Pane"
, content: ""
, open: false
})
var tabs = new dijit.layout.TabContainer({
region:"center"
, content:"Service Details"
, tabStrip: true
}).placeAt(tp.containerNode);
Pero cuando la propiedad abierta se establece en true, aparece el contenedor de pestañas.
var tp = new dijit.TitlePane({
title: "Title Pane"
, content: ""
, open: true
})
var tabs = new dijit.layout.TabContainer({
region:"center"
, content:"Service Details"
, tabStrip: true
}).placeAt(tp.containerNode);
¿Cómo puedo agregar widgets a TitlePane cuando la propiedad abierta se establece en falso?
Respuestas
3 para la respuesta № 1Estas seguro de que estas llamando startup
¿correctamente en tus widgets creados mediante programación? Lo siguiente funciona para mí si open
es true
o false
:
dojo.require("dijit.TitlePane");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
dojo.ready(function() {
var tp = new dijit.TitlePane({
title: "Title Pane",
content: "",
open: false
}).placeAt(dojo.body());
var tabs = new dijit.layout.TabContainer({
region: "center",
content: "Service Details",
tabStrip: true
}).placeAt(tp.containerNode);
tabs.startup();
tabs.addChild(new dijit.layout.ContentPane({
title: "foo", content: "bar"
}));
//putting this after adding the tabcontainer
//avoids problems when open is initially true
tp.startup();
});
Para aclarar en llamar startup
:
En general, cada vez que usted crea un widget programáticamente, necesita llamar manualmente su startup
. Sin embargo...
La excepción general a esto es cuando se trata de elementos secundarios de contenedores o widgets de diseño (en este caso dijit.TitlePane
que se extiende dijit.layout.ContentPane
, que se comporta como un widget de diseño) - estos buscan niños para llamar startup
cuando se inician ellos mismos (o en el caso de ContentPane
, también cuando se establece / carga nuevo contenido).
Widgets de contenedor (no ContentPane
, pero por ejemplo BorderContainer
, StackContainer
y sus subclases como AccordionContainer
y TabContainer
) también llamada startup
en niños añadidos después de que el contenedor ya está iniciado.