J'ai un widget personnalisé qui a un volet de contenu (entre autres choses). Dans celui-ci j'ai une liste de sélection multisélect. J'ai affecté un dojoAttachPoint
à la liste.Dojo PostCreate numéro
Je veux remplir la liste lorsque le widget est créé.
En postCreate
j'essaie de remplir la zone de liste avec des objets, mais la référence à this.selectFrom
(qui est le dojoAttachPoint
) est nulle.
Pourquoi cela ne serait-il pas disponible dans postCreate
? Des solutions de contournement?
Merci à l'avance
HTML:
<div dojoType='dijit.layout.ContentPane'>
<select name="drop1" style='width:200px;'
id="selectTo" dojoAttachPoint='selectTo'
size="10" multiple="multiple">
<option value="1">second col</option>
<option value="2">option two</option>
</select>
</div>
JS:
postCreate: function(){
this.inherited (arguments);
var newOption = document.createElement('option');
text = 'Mark Brown';
value = '1';
selectTo.options [this.selectTo.options.length] = new Option (name,value);
}
this.selectTo
est null
et il ne devrait pas être.
Merci
Difficile d'aider sans un fragment de code. Pour autant que je sache, ce que vous décrivez fonctionne pour moi ... http://jsfiddle.net/fAZGF/ –
Votre extrait de code semble avoir été tronqué. Pouvez-vous vous assurer que votre templateString (ou un modèle HTML séparé) est visible dans celui-ci? Quelque chose que nous pouvons brancher et exécuter pour dépanner serait encore mieux. –
pour une raison quelconque, il ne montre pas le modèle. Quoi qu'il en soit, j'ai résolu le problème. C'etait mon erreur. la référence à this.selectTo (qui était null) était à l'intérieur d'une fonction anonyme qui a essentiellement l'appel xhr à mon service Web pour obtenir la liste des utilisateurs et remplir la liste. Puisque j'utilisais 'ceci' à l'intérieur de la fonction anonyme, il est apparu comme nul. Erreur commune. J'ai donc sauvegardé une référence à 'ceci' à l'intérieur de postCreate(), var _this = this et utilisé _this.selectTo insead et ça marche bien. Merci à tous pour votre aide. – Mark