dojo de la Façon d'appliquer d'autres fonction événement onClose dans tabContainer?

StackOverflow https://stackoverflow.com//questions/25078720

  •  02-01-2020
  •  | 
  •  

Question

J'étudie la Tabcontainer.Le dojo est une méthode utilisée pour l'événement onClose confirmera ().Je n'utilise pas le confirmer () la w2confirm j'utilise ne s'applique pas.Tenté de diverses manières, mais cela n'a pas fonctionné.svp aidez-moi!

dojo exemple

 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);

mon code

 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);                                                                                                                                    
Était-ce utile?

La solution

w2confirm ne pas avoir une véritable valeur de retour, car il fonctionne de manière asynchrone (d'où le rappel de passer), ce qui signifie que votre fonction va retourner avant que l'utilisateur ne choisit oui ou non.

Il semble que vous ayez déjà tenté une approche différente, qui est sur la bonne voie, mais ContentPanes n'avez pas de close la méthode.Ce que vous pouvez faire, cependant, est de charger le parent TabContainer de retirer l'enfant, puis la détruire.Voici un moyen de le faire:

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();
            }
        });
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top