Avatar billede websam Nybegynder
24. marts 2006 - 08:39 Der er 18 kommentarer og
2 løsninger

Dropdownliste der driller lidt ?

Hejsa,

Jeg har lidt problemer med at fylde data i en dropdownliste. Jeg henter mine data ved hjælp af en datareader og ligge det over i en List(Of .....). Denne liste smides i cache og hentes så med :

    objBLL.FindUserGroup

Fra mit business lag. I codebehind laver jeg så følgende :

    drp_Reciever.DataSource = objBLL.FindUserGroup
    drp_Reciever.DataTextField = "GroupName"
    drp_Reciever.DataValueField = "UserGroup"
    drp_Reciever.DataBind()

men jeg får ikke vist noget i min dropdown andet end den jeg default har sat ind :

    <asp:ListItem Selected="True" Value="0">V&#230;lg modtager</asp:ListItem>

Er der en der kan hjælpe mig med det sidste ?

/Websam
Avatar billede dr_chaos Nybegynder
24. marts 2006 - 08:48 #1
Er appenddatabounditems sat til true ?

Ligger der noget data i objBLL.FindUserGroup ?
Avatar billede websam Nybegynder
24. marts 2006 - 08:50 #2
appenddatabounditems - det ved/tror jeg ikke, men tjekker det lige.

objBLL.FindUserGroup - skulle indeholde en cached liste, men tjekker det lige af.

/Websam
Avatar billede dr_chaos Nybegynder
24. marts 2006 - 08:53 #3
appenddatabounditems gør at når man databinder en dropdownliste mister man ikke f.eks. et fast kodet item på siden.
Som f.eks. dit vælg her.
Avatar billede snepnet Nybegynder
24. marts 2006 - 08:54 #4
der er bare ikke en disse i din liste der websam ... der kommer sikkert bare null tilbage :o)
(eller køres den kode du har vist ikke).
mvh
Avatar billede websam Nybegynder
24. marts 2006 - 08:56 #5
Jeg er oxo mere tilbøjelig til at tro at min liste er tom men jeg målige kigge det hele igennem en gang til ;o)

/Websam
Avatar billede websam Nybegynder
24. marts 2006 - 09:22 #6
Jeg henter fra database med denne :

Public Function LoadUserGroup() Implements DataMessageInterface.LoadUserGroup
    Dim Sql As String = "Select Id, UserGroup, GroupName From tbl_login_usergroup"
    Dim Dr As SqlDataReader = _Db.ExecuteReader(Sql)
    Dim objList As New List(Of NewsletterInfo.MessageInfo)
    Do While Dr.Read
        objList.Add(New NewsletterInfo.MessageInfo(Convert.ToInt32(Dr("Id")), _
                                                  Convert.ToInt32(Dr("UserGroup")), _
                                                  Convert.ToString(Dr("GroupName")), _
                                                  0, _
                                                  "", _
                                                  ""))
    Loop
    Dr.Close()
    Return objList
End Function

Laver cache med denne :

Public Function FindUserGroup() Implements MessageInterface.FindUserGroup
    '--- Laver cache af listen med emails.
    Dim Source As List(Of NewsletterInfo.MessageInfo) = CType(HttpContext.Current.Cache("UserGroup"), List(Of NewsletterInfo.MessageInfo))
    If Source Is Nothing Then
        Source = objDAL.LoadUserGroup
        HttpContext.Current.Cache("UserGroup") = Source
    Else
        HttpContext.Current.Cache("UserGroup") = Source
    End If
    Return Source
End Function

og prøver så på at smide i min dropdownliste :

drp_Reciever.DataSource = objBLL.FindUserGroup
drp_Reciever.DataTextField = "GroupName"
drp_Reciever.DataValueField = "UserGroup"
drp_Reciever.DataBind()

kan i se noget forkert i det ?
Avatar billede snepnet Nybegynder
24. marts 2006 - 09:33 #7
kan du ikke bare debugge og se om listen er tom?
mvh
Avatar billede websam Nybegynder
24. marts 2006 - 10:25 #8
Min liste har en count = 5 ved debug i datalaget og buisineslaget.

Men min drp_Reciever.DataSource = objBLL.FindUserGroup angives som værende Nothing, kan du forklare mig hvad der går galt ?

/Websam
Avatar billede dr_chaos Nybegynder
24. marts 2006 - 10:31 #9
I FindUserGroup funktionen er der så noget i source ?
Avatar billede websam Nybegynder
24. marts 2006 - 10:34 #10
Ja source er = 5
Avatar billede websam Nybegynder
24. marts 2006 - 14:13 #11
Jeg skal vel ikke lave noget loop igennem min liste for at det kan lade sig gøre ?
Avatar billede snepnet Nybegynder
24. marts 2006 - 14:21 #12
drp_Reciever.DataSource = objBLL.FindUserGroup
drp_Reciever.DataTextField = "GroupName" 'hvis du sætter et breakpoint her, hvad er drp_Reciever.DataSource så?
drp_Reciever.DataValueField = "UserGroup"
drp_Reciever.DataBind()

mvh
Avatar billede websam Nybegynder
24. marts 2006 - 14:29 #13
så skriver den at datasource er :

drp_Reciever.DataSource = {System.Collections.Generic.List(Of Newsletter.NewsletterInfo.MessageInfo)}
Avatar billede snepnet Nybegynder
24. marts 2006 - 14:32 #14
med hvor mange elementer?
mvh
Avatar billede websam Nybegynder
24. marts 2006 - 14:33 #15
Med 5 som der skal være da der kun er 5 i databasen
Avatar billede snepnet Nybegynder
24. marts 2006 - 14:39 #16
kan du ikke lige prøve sådan her:

drp_Reciever.DataSource = new string{"a","b","b"};
'drp_Reciever.DataTextField = "GroupName" 'hvis du sætter et breakpoint her, hvad er 'drp_Reciever.DataSource så?
'drp_Reciever.DataValueField = "UserGroup"
drp_Reciever.DataBind()

mvh
Avatar billede websam Nybegynder
25. marts 2006 - 00:32 #17
Underlige spøgelser der driller for tiden, måske jeg skal have en ånde-maner på besøg i lejligheden her for at få dem ud.

Pc'en har været slukket nogle timer og virker det hele som det skal ?!?!?!?

Smid et svar ;o)
Avatar billede snepnet Nybegynder
25. marts 2006 - 18:19 #18
jeg deler som et minimum med chaos
mvh
Avatar billede dr_chaos Nybegynder
25. marts 2006 - 18:29 #19
jamen så smider jeg som minimum et svar :D
Avatar billede websam Nybegynder
26. marts 2006 - 08:48 #20
så deler i blot
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester