2012-02-03 12 views
5

Stiamo utilizzando il controllo XPages (nativo) "Messaggi di errore" per mostrare all'utente gli errori di convalida. Funziona. La convalida viene eseguita impostando il campo come richiesto e inserendo il messaggio di errore sul campo. Niente di speciale.Come impostare l'ordine dei messaggi di convalida?

Ora è necessario impostare i messaggi di errore nello stesso ordine in cui appaiono nel modulo. È possibile?

Immagino di poter creare un validatore personalizzato (Java) e di eseguire tutte le convalide del modulo in un determinato ordine (ho appena testato l'interfaccia di convalida ... ma non ho ancora utilizzato l'id).

+0

In quale ordine vengono visualizzati i messaggi di errore come predefiniti? Presumo che compaiano nello stesso ordine in cui sono elencati nel codice sorgente (ma posso vedere che questo potrebbe non essere lo stesso ordine in cui appaiono dopo l'applicazione del CSS) –

+0

Non mi aspetto che l'ordine sia necessariamente lo stesso della fonte. Allo stesso modo non l'ho provato. Ma mi aspetterei che esegua i convertitori prima dei validatori, quindi i controlli con un errore del convertitore potrebbero apparire per primi. L'altro posto da verificare sarà la classe Java creata. Questo è ciò che viene eseguito, quindi l'ordine dei controlli potrebbe essere l'ordine in cui sono stati creati i controlli, non l'ordine in cui appaiono nel riquadro Sorgente. In tal caso, riordinare la classe Java potrebbe cambiare l'ordine dei messaggi di errore –

+0

@Paul - in realtà il convertitore di un campo viene eseguito appena prima che il valore sia convalidato. Quindi è ancora nell'ordine in cui appaiono nell'albero. Quindi, se nella struttura dei componenti ci sono due campi, uno subito dopo l'altro, e il campo 1 fallisce durante la convalida e field2 fallisce durante la conversione, vedrai un errore di validatore, quindi l'errore del convertitore. –

risposta

0

C'è il vecchio argomento (non risolto): se gli errori compaiono accanto al controllo che non ha superato la convalida, in cima al modulo o accanto al pulsante premuto per l'invio. Tendo a metterli accanto al controllo fallito e ho un messaggio accanto al pulsante che legge: "Scusa non ho potuto elaborare l'input, aiutami e correggere i campi che contengono messaggi di errore accanto a loro". Quindi la sequenza non è più un problema. Se vuoi essere sicuro al 100% che potresti utilizzare il controllo di riepilogo, usa i singoli controlli uno accanto all'altro.

Che cosa sarebbe comunque un buon esercizio: lasciare che il controllo del messaggio di errore modifichi il css del controllo fallito, quindi diventa più chiaro cosa cercare.

+0

È possibile applicare uno stile diverso al controllo non riuscito utilizzando questa tecnica: http://dontpanic82.blogspot.com/2011/07/xpages-styling-invalid-field.html –

+0

Ho anche inserito un controllo dei messaggi di errore "avanzato" che genera collegamenti su i messaggi di errore in modo che sia possibile fare clic sul messaggio di errore per impostare lo stato attivo sui campi non validi. http://dontpanic82.blogspot.com/2011/07/custom-control-for-cedhanced-validation.html –

+0

I messaggi di errore con il controllo personalizzato I collegato ora dovrebbero mostrare i messaggi di errore nell'ordine in cui sono i controlli la pagina. –

0

Le convalide vengono attivate una alla volta in modo che si trovino nell'albero dei componenti. A seconda di come vuoi che vengano visualizzati, puoi spostare i componenti e quindi modificarli con i CSS. O se vuoi davvero spostare l'ordine delle istruzioni di riepilogo nella casella Messaggi, vorrei semplicemente usare un JS per spostarle, credo che si limitino a renderle come UL. Solo un validatore non funzionerà in quanto lo stesso validatore verrà generato per ogni componente nell'ordine della struttura dei componenti.

Problemi correlati