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

    [2.0-VB.NET]Repeater - inserire colori di sfondo da database

    Salve a tutti

    premetto che questa è la mia prima domanda, quindi siate buoni...

    Allora la situazione è questa:

    ho una tabella con un nome associato al codice ascii di un colore;
    quello che vorrei ottenere per ora è di visualizzare una label o cmq in qualche modo il nome nella tabella e come sfondo il colore associato:

    Il codice che ho scritto è questo:

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>

    <asp:Label ID="Label1" runat="server" Text=<%# databinder.Eval(container.DataItem, "nome") %> Font-Bold="true" BackColor=<%# databinder.Eval(container.DataItem, "codice") %> >
    </asp:Label>


    </ItemTemplate>
    </asp:Repeater>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MagazzinoMLConnectionString %>" SelectCommand="SELECT [nome], [codice] FROM [Tab_Colori] ORDER BY [nome]"></asp:SqlDataSource>


    Mi da questo errore qui:

    InvalidCastException non è stata gestita dal codice utente - Cast non valido

    A questo punto la mia mente illuminata mi suggerisce che ci sia qualche errore di casting ma non so proprio dove mettere le mani...

    Un aiutino?

  2. #2

    Codice ASCII?

    Un colore non credo sia rappresentabile con un codice ASCII, forse intendi il valore RGB del colore, una cosa che suona più o meno:

    #FFFFFF per il Bianco, e #FF0000 per il Rosso e così via?

    Allora, prima di tutto di che tipo sono i dati contenuti nelle colonne 'nome' e 'codice' della tabella Tab_Colori del DB?

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

  3. #3
    Grazie per l'aiuto e chiedo perdono per il ritardo nella risposta,
    internet ieri sera ad un tranno è sparito e non c'è stato verso di farlo rifunzionare

    cmq i dati sono due string


  4. #4
    Ho risolto!


    Allego il codice se a qualcuno dovesse servire in futuro:

    Il repeater è questo qui

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text=<%# databinder.Eval(container.DataItem, "nome") %> BackColor=<%# ConvertiColore(container.DataItem) %> >
    </asp:Label>

    </ItemTemplate>
    </asp:Repeater>


    e utilizzo questo metodo che prende una stringa che contiene il codice del colore in rgb e lo trasforma in un oggetto color (System.Drawing.Color)

    Function ConvertiColore(ByVal DataItem As Object)
    Dim codice As String
    Dim colore As Color
    codice = DataItem("codice")

    ' Create the ColorConverter.
    Dim converter As System.ComponentModel.TypeConverter = _
    System.ComponentModel.TypeDescriptor.GetConverter( colore)
    colore = converter.ConvertFromString(codice)

    Return colore
    End Function

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.