Avatar billede ha9953 Nybegynder
04. juli 2004 - 11:07 Der er 1 kommentar og
1 løsning

angive OnSelectedIndexChanged på en dropdownlist i codebehind

Jeg har lavet min egen dropdownlist som en kombinent og indsætter den i en usercontrol via vodebehind. Dettte fungerer fint men når jeg skal angive OnSelectedIndexChanged kommer den med nedenstående fejl - er der nogen dr kan hjælpe?

'System.Web.UI.WebControls.ListControl.Protected Overridable Sub OnSelectedIndexChanged(e As System.EventArgs)' is not accessible in this context because it is 'Protected'.

Jeg indsætter den på følgende måde:

        drpgruppe.brugerrolleid = 6
        drpgruppe.cssclass = "boxtotal"
        drpgruppe.OnSelectedIndexChanged="gruppe_click"
        Labgruppe.controls.add(drpgruppe)

Min dropdownlist laver jeg på følgende måde:

    Public Class brugergrupperolle : Inherits System.Web.UI.Webcontrols.dropdownlist

        Public _brugerrolleid as integer
        Public Property brugerrolleid() as integer
            Get
              Return _brugerrolleid
            End Get       
            Set
              _brugerrolleid = Value
            End Set
        End Property   

        Public Readonly Property gruppeid() as integer
            Get
              Return cint(me.selecteditem.value)
            End Get       
        End Property   


        Public Sub Page_init(Source As Object, E as EventArgs) handles mybase.init
me.Items.Add(New ListItem(_brugerrolleid,_brugerrolleid))       
me.Items.Add(New ListItem("test1","1"))
            me.Items.Add(New ListItem("test2","2"))
            me.Items.Add(New ListItem("test3","3"))                       
        end sub       
    End Class
Avatar billede odegaard Nybegynder
11. juli 2004 - 13:16 #1
Det her må man ikke, da OnSelectedIndexChanged er protected:
drpgruppe.OnSelectedIndexChanged="gruppe_click"
Det er et event som du ikke bare kan sætte lig med en streng (jeg ved godt man kan gøre det i design-delen men den går ikke i kode-delen).
I stedet skal du tilføje en eventhandler til objektet som peger på din funktion gruppe_click. Jeg kan ikke helt huske hvordan man gør det i VB.NET, men kig i dokumentationen. Mener det er noget i stil med:
Private Sub gruppe_click(sender As Object, e As EventArgs) Handles drpgruppe.SelectedIndexChanged
  [...]
End Sub

I C# gøres det ihvertfald under initialisering ved:
drpgruppe.SelectedIndexChanged += new EventHandler(this.gruppe_click);
Avatar billede ha9953 Nybegynder
14. juli 2004 - 17:02 #2
Du får de 200 point - brugte en anden løsning - men du havde ret i hvad du skrev :-)
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