Pregunta

Estoy estudiando el TabContainer. El DOJO es un método utilizado para el evento de OnClose confirmará ().No uso el confirmar () el w2confirm i use no se aplica.Intentó de varias maneras, pero no funcionó.¡PLZ AYUDA!

Ejemplo DOJO

 var closablePane = new ContentPane({
    title:"Close Me",
    closable: true,
    onClose: function(){
       // confirm() returns true or false, so return that.
       return confirm("Do you really want to Close this?");
    }
});

onCloseEx.addChild(closablePane);

mi código

 function abc(){
                w2confirm("are you delete?",function btn(ans){
                    if(ans=="Yes"){
                        return true;//this.close();
                        //console.log(registry.byId(id));
                        //registry.byId(id).close();
                    }else{
                        return false;
                    }
                });
            }       

var tab = new dijit.layout.ContentPane({
                    title : name,
                    id : id,
                    content : content,
                    class : 'tab',
                    closable : true,
                    onClose : function() {
                        return abc();
                    }
                });

                var container = dijit.byId('tabContainer');
                container.addChild(tab);
                container.selectChild(tab);                                                                                                                                    

¿Fue útil?

Solución

w2confirm no tiene un valor de retorno significativo porque opera de forma asíncrona (de ahí la devolución de llamada que pasa), lo que significa que su función va a regresar antes de que el usuario haya seleccionado sí o no.

Parece que ya intentó un enfoque diferente, que estaba en el camino correcto, pero los contentanos no tienen un método de generación de generación de generación.Sin embargo, lo que puedes hacer es instruir al padre TabContainer para eliminar al niño, luego destruirlo.Aquí hay una manera potencial de hacerlo:

var tab = new dijit.layout.ContentPane({
    ...
    onClose: function () {
        w2confirm("Are you sure you want to delete?", function (answer) {
            if (answer === "Yes") {
                tab.getParent().removeChild(tab);
                tab.destroyRecursive();
            }
        });
    }
});

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top