Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    174

    [VB.NET] Cambiare colore ad asp:label in base al contenuto

    Hola ragazzi,
    ho collegato un dataList ad un datasource.
    Nel datalist ogni dato viene messo in una relativa asp:label. Fin qui funziona tutto.
    Io ho un campo che definisce lo stato, il quale può essere aperto o chiuso. Vorrei far si che se la scritta in questa label é "aperto" sia scritta in rosso, se invece é "chiuso" sia scritta in verde.

    Come posso fare?
    Se cerco di accedere alla label facedo
    idLabel.foreColor = color.red

    nella funzione

    DataList1_ItemDataBound

    mi dice che idLabel non é dichiarato, anche se invece nel codice aspx, la dichiaro é "dichiarata" nel seguente modo:

    codice:
     <asp:Label ID="statusLabel" runat="server" Text='<%# Eval("status") %>' />
    Come posso fare?!?

    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di Cimp
    Registrato dal
    Nov 2006
    Messaggi
    28

    label e contenitori

    La tua label non esiste nella pagina, esiste nel controllo contenitore...
    un modo per "prenderla" e smandrupparla è:
    codice:
    Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
    
            Dim lblId As Label = e.Item.FindControl("idLabel") 'qui metti l'id della tua label
                                                                              
            If lblId IsNot Nothing Then
                Select Case lblId.Text  
                    Case "1"                  'qui io ho dei "numeri", tu metti il tuo testo. 
                                                 'Attento, questo è Case sensitive, fai Upper 
                                                 ' (o lower) di tutti e due....
                        lblId.ForeColor = Drawing.Color.Green
                                                 'ti consiglio di impostare anche un colore di sfondo adeguato...
                    Case "2"
                        lblId.ForeColor = Drawing.Color.Red
    
                    Case Else
                        lblId.ForeColor = Drawing.Color.Blue
                End Select
            End If
        End Sub

  3. #3
    Utente di HTML.it L'avatar di Cimp
    Registrato dal
    Nov 2006
    Messaggi
    28

    se invece vuoi stare inline...

    ...volendo ti funzionerebbe anche questo nel markup della pagina:
    codice:
                    <asp:Label ID="statusLabel" runat="server" Text='<%# Eval("status") %>' ForeColor =<%# if  ((Eval("status")="aperto"),system.drawing.color.red,system.drawing.color.green) %> />
    te lo sconsiglio, però, a meno che il code behind non ti sia troppo oscuro.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    174
    Grazie mille!

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.