Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Modifica labels

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157

    Modifica labels

    Ciao,
    il problema č di per se banale, ma non riesco a trovare la sintazzi giusta.
    In una pagina, dopo un certo evento, devo cambiare il colore di diverse decine di label. Una cosa del genere:

    lblPhase01.ForeColor = Drawing.Color.Red
    lblPhase02.ForeColor = Drawing.Color.Red
    lblPhase03.ForeColor = Drawing.Color.Red
    lblPhase04.ForeColor = Drawing.Color.Red
    lblPhase05.ForeColor = Drawing.Color.Red
    ...

    Vorrei fare un ciclo For ma non so cosa usare per scorrere le label. Mi date dei suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    prova ad adattare questo codice
    codice:
    	For i As Integer = 1 To 10
    		Dim c As DropDownList = DirectCast(Me.FindControl("DropDownList" & i.ToString), DropDownList)
    		'adesso posso utilizzare il DropDown c
    	Next
    insomma, bisogna usare il contenitore.FindControl
    Pietro

  3. #3
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Forse ti conviene (non ti lega al naming delle label ed č forse anche piu performante ) impostare sull'evento onprerender delle label lo stesso gestore ad esempio

    .aspx
    codice:
            <asp:Label ID="Label1" runat="server" Text="Label" 
                onprerender="MyLabels_PreRender"></asp:Label>
                
    
            <asp:Label ID="Label2" runat="server" Text="Label" 
                onprerender="MyLabels_PreRender"></asp:Label>
    poi il gestore lo puoi definire + o - cosi
    codice:
        protected void MyLabels_PreRender(object sender, EventArgs e)
        {
            if(ViewState["MyFalg"]!= null && (Boolean)ViewState["MyFalg"]== true)
                ((Label)sender).ForeColor = System.Drawing.Color.Red;
        }
    Ci vuole un flag perchč l'evento prerender viene eseguito ogni volta che il webcontrol viene renderizzato, quindi metti il falg a true solo quando vuoi che le label cambino colore.

    un saluto

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    Grazie dei suggerimenti.

    Ho usato il Directcast, consigliato da Pietro, e funziona benissimo. Oltretutto mi risolve anche il problema analogo delle TextBox.

    L'evento OnPreRender lo uso per altre cose, per esempio caricando le View di un MultiView, ma qui non mi era comoda come codice, dato che ho da fare parecchie operazioni di seguito.


  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Se ti va di sperimentare, puoi provare a non fare uso nč di prerender, nč di findcontrol.
    Magari si puō fare cambiando la classe degli elementi incriminati; magari facendo uso di jquery :master:
    Pietro

  6. #6
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Originariamente inviato da pietro09
    Se ti va di sperimentare, puoi provare a non fare uso nč di prerender, nč di findcontrol.
    Magari si puō fare cambiando la classe degli elementi incriminati; magari facendo uso di jquery :master:
    Se non ci sono operazioni da fare lato server č sicuramente l'opzione migliore


  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    residenza
    Turin, Italy
    Messaggi
    157
    In realtā č praticamente tutto lato server.
    A seconda dei dati nel DB di volta in volta visualizza la pagina in modo diverso, ma la ricarica sempre.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.