Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Listbox personalizzato

  1. #1

    Listbox personalizzato

    ciao ragazzi, ho questo piccolo problema
    devo popolare un listbox ottenendo i valori da un dataset
    e fin qui..

    devo però colorare lo sfondo di ogni elemento del listbox in base ad un valore boolean che c'è nel dataset.

    per il momento sono arrivato a questo punto:

    For Each rd In dst_farmac.Tables(0).Rows

    Dim tex As DataRow
    tex = dst_farmac.Tables(0).Rows(a)
    Dim tex1 As String
    tex1 = tex("nome_farmaco")

    Dim inser As DataListItem

    'inser.Attributes()

    farmaco.Items.Add(New ListItem(tex1, tex1))

    Dim tex2 As Boolean
    tex2 = tex("convenz")

    If tex2 = False Then
    farmaco.BackColor = System.Drawing.Color.SlateGray

    End If


    a = a + 1
    Next

    come vedete non posso "bindare" normalmente (credo) altrimenti come faccio a discriminare gli elementi con lo sfondo blu o no ?

    il codice sopra colora tutto ! questo perchè non riesco a "prendere" il singolo list item e "lavorarmelo" in un ciclo if ....

    voi avete qualche soluzione ?
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Ma su che evento del datalist stai lavorando?

    Non ho controllato se il codice è OK, ma comunque dovresti inserirlo nell'evento ItemCreated.

    Hey hey, my my Rock and roll can never die!

  3. #3
    Grazie Zampa28 intanto...

    mi sono accorto di aver scritto datalist invece di listbox !

    non c'entra niente il datalist , quello che ho io è una listbox ! (ho provato ad editare il messaggio per porvi rimedio ma non mi lascia... sono trascorsi + di 60 min da quando ho scritto il messaggio)

    eventualmente se non fosse possibile usare una listbox, userei anche una dropdownlist ...
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  4. #4
    ok ci sono quasi

    Dim li = New ListItem()
    li.Value = tex1
    li.Text = tex2

    'If tex2 = 0 Then
    li.Attributes.Add("Style", "background-color: #0000ff;color: #ffffff")


    ma non funzia !

    devo fare questo ma non funzia !!!
    http://www.iranasp.net/Tutorial/Arti...?articleid=114
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  5. #5
    Ci ho provato anch'io ma non si può!
    Gli elemti della listbox sono degli itemtemplate a cui non puoi aggiungere gli attributes... o almeno puoi ma non te li aggiunge.
    Non puoi fare neanche ereditare la classe perchè l'hanno definita not inheritable...

    L'unico modo.... è crearti un repeater o una funzione che ti aggiunga gli elementi uno alla volta come html!

    Fammi sapere
    Ciao
    Kalman
    Kalman

  6. #6
    ecco perchè sul sito iraniano poi la spiegazione va avanti creandosi un listbox personalizzato ....

    ma che cavolo ! si può ma non te li aggiunge !!!

    mi sembra una gran cavolata di asp.net !

    farò come dici tu... se riesco però posto il codice

    così però funzia:

    mioListbox.Attributes.Add("Style", "background:#999999; color:white")
    ma me lo fà su tutto il listbox però !
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  7. #7
    Prima ho detto una stupidata non sono gli itemtemplate ma i listitem! Il problema comunque non cambia!
    Kalman

  8. #8
    mi sà che sarà dura...
    grazie intanto per il tuo aiuto Kalman, perchè stò impazzendo... quando per una cavolata butti via 1 giornata guarda.....

    vengo al dunque; se faccio così

    <asp:listbox id="farmaco" runat="server" EnableViewState="False" SelectionMode="single" Rows="10">
    <asp:Repeater id="Repeater1" runat="server">
    <ItemTemplate>
    <asp:ListItem Value="valore" text="testo"></asp:ListItem>
    </ItemTemplate>
    </asp:Repeater>
    </asp:listbox>

    si incazza ! mi dice che dentro un listbox non ci può essere un repeater e mi si pianta ...
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  9. #9
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    A volte la soluzione più semplice non viene mai presa in considerazione!!
    Ho guardato velocemente il sito iraniano dove hai visto il listbox incriminato, c'è tutto quello che ti serve.
    Anche se usi vb e non c# copia e incolla in un file c#, compili il controllo e lo puoi utilizzare.
    Se devi aggiungere qualcosa(Proprietà booleana per cambiare il colore)lo fai prima di compilarlo e sei a posto.
    Se non fossi così impegnato te ne farei uno io direttamente in vb.
    Ciao
    Legnetto

  10. #10
    bella Legnetto ! grazie

    finalmente al 45° del 2° tempo come Fantozzi "realizzai"

    ho usato un semplice select del html e ho fatto come dice Kalman... tutto ok

    però per una stupidata del genere mi è andata via la mattina !

    proverò a riguardarmi il sito (forte il sito iraniano eh ... non è male, vedi solo il codice perchè del resto non capisci una mazza però..)

    ciao e grazie a tutti !
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

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.