Sera a tutti,
in un listview, connesso ad un datasource, vorrei evidenziare una riga di colore ROSSO
se il campo PIPPO è ,per esempio, TRUE.
Sapete come si può fare? ci sto sbattendo la capa da un giorno!!
ciao e grazie cc
Sera a tutti,
in un listview, connesso ad un datasource, vorrei evidenziare una riga di colore ROSSO
se il campo PIPPO è ,per esempio, TRUE.
Sapete come si può fare? ci sto sbattendo la capa da un giorno!!
ciao e grazie cc
Listview di asp.net 3.5?
si, asp.net 3.5...
ciao
cc
Nell'esempio, il ListView ha un OleDbDataReader come origine dati.
Utilizzo l'evento ItemDataBound per trovare tutte le righe in cui un certo campo ha un certo valore, e coloro quelle righe di arancione.
codice:Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound Dim lw As ListView = DirectCast(sender, ListView) Dim li As ListViewItem = e.Item If li.ItemType = ListViewItemType.DataItem Then Dim di As ListViewDataItem = DirectCast(li, ListViewDataItem) 'seleziono le righe che hanno il campo [testo] = "pietro" Dim r As System.Data.Common.DbDataRecord = DirectCast(di.DataItem, System.Data.Common.DbDataRecord) Dim tr As System.Web.UI.HtmlControls.HtmlTableRow = DirectCast(li.FindControl("riga"), System.Web.UI.HtmlControls.HtmlTableRow) If tr IsNot Nothing Then If l.NullToString(r("testo")).ToLower = "pietro" Then tr.Style.Add("background-color", "#F2BF63") End If End If ***
Pietro
Grazie per la risposta, ma avrei un dubbio...
> If l.NullToString(r("testo")).ToLower = "pietro" Then
'l' non è stato dichiarato.... , che tipo di variabile è?
ciaociao
cc
Originariamente inviato da cucciocuccio
Grazie per la risposta, ma avrei un dubbio...
> If l.NullToString(r("testo")).ToLower = "pietro" Then
'l' non è stato dichiarato.... , che tipo di variabile è?
ciaociao
ccmi dispiace, ci sono cascato ancora. Nel mio esempio è un metodo di una libreria.
Puoi, in prima aprossimazione fare r("testo")).Tostring().ToLower(), se non ci sono valori nulli.
ps. visto che non mi ha mai tradito, il metodo è:
e la dichiarazione era:codice:'-------------------------------------------------------------- 'Converte DBNull nella stringa vuota "" '-------------------------------------------------------------- Public Function NullToString(ByVal v As Object) As String If IsDBNull(v) Then Return "" Else Return CType(v, String) End If End Function
codice:Option Strict On Imports l = libreria.ModuloWeb
Pietro
Grazie PIETRO... mi hai ispirato al codice funzionante che posto...
Protected Sub ListView1_selezionarighe(ByVal sender As Object, ByVal e As EventArgs) Handles ListView1.PreRender
For Each lvi As ListViewDataItem In ListView1.Items
Dim tr As System.Web.UI.HtmlControls.HtmlTableRow = CType(lvi.FindControl("riga"), System.Web.UI.HtmlControls.HtmlTableRow)
Dim chkSelect As CheckBox = CType(lvi.FindControl("nomailCheckBox"), CheckBox)
If (Not (chkSelect) Is Nothing) Then
If (chkSelect.Checked) Then
If tr IsNot Nothing Then
tr.Style.Add("background-color", "#F2BF63")
End If
End If
End If
Next
End Sub
nell'evento prerender della listview ho ricavato il check che mi pilota lo sfondo, l'ho interrogato ed infine mandato alla riga il tr.add.style (parte che mi mancava)
GRAZIE ANCORA A PIETRO
sera
cc
:master: Ho sempre visto fare certe operazioni nell'evento ItemDataBound, ad esempio per il calcolo delle somme che debbono comparire al piede.
Il prerender l'ho visto solo per operazioni particolari che non si possono fare negli eventi precedenti.
Io comunque seguo (per quanto mi è possibile) i consigli degli amici del forum che mi hanno preceduto in queste problematiche. Ciao.![]()
Pietro
Io, come ti sarai accorto sono un newbie di ASP.NEt... "programmicchiavo" in VB e me la cavicchio con asp e php...
premesso ciò...
l'evento itemdatabound... quando di preciso si scatena?
ciao
cc