Ciao a tutti,
ho la necessita di colorare le righe di una listbox in base al contenuto di un valore.
Uso questo codice:
ListBox1.Cell(ListBox1.LastIndex, 0) = "<big style='color:green;'>" + recData.IdxField(11).StringValue +"</big><p style='color:red;'>Second line</p>"
Il problema che questo codice funziona solo nell’evento open della listbox, ma nell’evento open ancora non ho il valore da filtrare.
Supponiamo che dopo avere caricato i dati nella listbox, con un bottone vorrei colorare tutte le celle di blu, come posso dare ?
Se uso il codice sopra, l’html me lo scrive in chiaro.
Grazie
crea una variabile globale :
dim x as integer
crea una funzione dove carichi la listbox e testi la variabile, che richiami dall’evento action del bottone.
(nella funzione in testa cancella le righe, listbox.RemoveRow)
if x = 0 then
ListBox1.Cell(ListBox1.LastIndex, 0) = “” + recData.IdxField(11).StringValue +“
Second line
”
elseif x= 1 then
ListBox1.Cell(ListBox1.LastIndex, 0) = “
” + recData.IdxField(11).StringValue +“Second line
”
…etc.
oppure al posto della variabile globale, memorizza il valore nel RowTag oppure nel RowColumn per una gestione più granulare.
leggi la listbox (testando i valori, rowtag o columntag) e carichi una seconda listbox. (rendendo visibile o invisibile una o l’altra)
Le tecniche sono due:
O ricarichi i dati con il contenuto correttamente formattato in base alle condizioni
Oppure, se vuoi solo evidenziare dei dati in base a una o più condizioni:
Quando carichi i dati:
ListBox1.Cell(ListBox1.LastIndex, 0) = “” + recData.IdxField(11).StringValue +“
Second line
”
Crei uno stile senza nessun parametro impostato ->wbStyEvidenzia
Nell’header dell’app (inspector app -> HTMLHeader) inserisci:
.wbStyEvidenzia .prima {color:green}
.wbStyEvidenzia .seconda {color:red}
Ora quando vuoi evidenziare i dati, detta CondizioneSoddisfatta un booleano che indica se la condizione per cui vuoi evidenziare il dato è soddisfatta:
Listbox1.CellStyle(rigaCorrente,0)=if( CondizioneSoddisfatta, wbStyEvidenzia, nil)
In pratica assegni alla cella lo stile e il motore del browser la evidenzia seguendo la regola scritta negli stile.
Più difficile a spiegare che a fare…
Grazie Luciano,
ma la soluzione di Antonio ha più style
Ora provo e vi aggiorno.