Domanda

Ho un'applicazione Flex 3 con una vista in un ViewStack, e che vista deve essere creata solo quando richiesto. Ho dichiarato validatori per ognuno dei controlli sulla vista e ho creato un metodo chiamato checkAllValid () che gestisce Validator.validateAll (). Questa grande opera quando sto in realtà utilizzando i controlli (utilizzando la modifica o eventi focusOut), ma come posso ottenere checkAllValid () per eseguire quando la vista viene prima visualizzato all'utente, in modo che siano immediatamente mostrati ciò che è valido una volta il dato è popolata nei controlli?

Ho provato a mettere la chiamata in vari eventi sulla vista stessa (ad esempio creationComplete, UpdateComplete, mostra, attivare, etc.) ma mostra sempre il seguente errore quando inizio dell'applicazione:

'L'attributo di origine deve essere specificato quando viene specificato l'attributo di proprietà.'

Inoltre ho provato a fissare il creationPolicy sulla vista a "tutti", ma questo non aiuta.

Alcuni dei validatori sono abilitati solo quando il modulo è in un certo stato, ma mi hanno eliminato che come il potenziale problema commentando tutti i miei validatori tranne che per questo la maggior parte semplice:

<mx:Array id="validators"><mx:StringValidator id="val_Address1" source="{Address1}" property="text" required="true" triggerEvent=""/></mx:Array>

Il metodo checkAllValid () è semplice come segue:

private function checkAllValid():void{              
        var validationErrors: Array = Validator.validateAll(validators);        
}

Inoltre ho provato a chiamare il singolo validatore direttamente invece di usare validateAll e il risultato è lo stesso.

Si prega di aiutare! Ci deve essere un modo per forzare la visualizzazione di convalidare quando sia dimostrato ....

(dal modo in cui è nel quadro Cairngorm MVC e devo dati associati ai controlli)

È stato utile?

Soluzione

Ci sono! Ho aggiunto validatori simili a un'altra vista e hanno funzionato bene. Qual è stata la differenza? Il metodo che ha chiamato checkAllValid () è stato chiamato sul caso creationComplete di contenitore interno - non il componente di vista principale.

Quindi, alla fine non era niente a che fare con la convalida in sé - solo io non comprendere appieno l'ordine di creazione.

Lascio la questione qui in caso qualcuno incontra un problema simile con l'ordine di creazione.

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