Come interpretare tag html dentro un campo?
copia linkRisposta
Quando l'applicazione mostra all'utente un campo di pannello della master query, il valore viene trattato per una corretta visualizzazione. Ad esempio il valore "<b>Hello world!</b>" viene scritto nell'html come "<b&gt;Hello world!&lt;/b&gt;".
A seconda dello stato del campo gli oggetti mostrati a video sono diversi:
- se il campo è attualmente scrivibile il suo valore non elaborato viene scritto in un oggetto INPUT, così che l'utente possa cambiarlo.
- se il campo è attualmente non scrivibile il valore elaborato viene scritto in un oggetto DIV, in questo modo il browser interpreta un codice che ha come risultato un testo uguale al codice originale.
E' necessario che il campo sia disabilitato perché altrimenti l'utente deve essere messo in condizione di visualizzare l'esatto contenuto del campo, dato che deve modificarlo.
Se è necessario creare un campo contenente codice HTML che l'utente deve poter visualizzare sia come codice plain che come codice interpretato, allora è possibile utilizzare il metodo SetEnabled per abilitare/disabilitare il campo a seconda di ciò che l'utente deve vedere.
Nell'esempio sottostante il campo HTML viene disabilitato in layout list e abilitato in layout form. In questo modo l'utente può editare l'html in form e visualizzare il risultato in list.
Esempio di codice
// ****************************************************************************
// Evento notificato dal pannello al cambiamento del layout (da dettaglio a
// lista o viceversa)
// ****************************************************************************
event Ass0007092009.Prodotti.OnChangeLayout(
int NewLayout // E' un numero intero che rappresenta il nuovo lay...
inout boolean Cancel // E' un parametro booleano di input/output che può...
)
{
// Disabilito il campo in list così che l'utente veda il risultato del codice
// HTML che ha editato in layout form
Prodotti.HTML.SetEnabled(NewLayout = Form)
}
// Evento notificato dal pannello al cambiamento del layout (da dettaglio a
// lista o viceversa)
// ****************************************************************************
event Ass0007092009.Prodotti.OnChangeLayout(
int NewLayout // E' un numero intero che rappresenta il nuovo lay...
inout boolean Cancel // E' un parametro booleano di input/output che può...
)
{
// Disabilito il campo in list così che l'utente veda il risultato del codice
// HTML che ha editato in layout form
Prodotti.HTML.SetEnabled(NewLayout = Form)
}
Note
- L'utilizzo di codice html interpretato direttamente dal browser espone a potenziali problemi di validità del codice stesso. Inserendo un oggetto html con lo stesso id di un oggetto di sistema il framework rd3 potrebbe confonderli.
- Non bisogna inserire codice javascript all'interno di questi campi, poiché il valore viene scritto a video più volte. Per l'esecuzione di codice javascript personalizzato è necessario utilizzare il metodo ExecuteOnClient.
Attenzione, questo articolo è stato dichiarato obsoleto! Ultima modifica: 22/11/2013 / Validità: da 8.5.3800