Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Personalizzare riga Listview

    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

  2. #2
    Utente di HTML.it L'avatar di Franz78
    Registrato dal
    Sep 2004
    Messaggi
    730
    Listview di asp.net 3.5?

  3. #3
    si, asp.net 3.5...


    ciao
    cc

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  5. #5
    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

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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
    cc
    mi 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 è:
    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
    e la dichiarazione era:
    codice:
    Option Strict On
    Imports l = libreria.ModuloWeb
    Pietro

  7. #7
    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

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :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

  9. #9
    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

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.