Frage

I am trying to put a - what seems - very simple web user control

basically i want it to render as a dropdownlist/checkboxlist or radiolist based on a property but also want to be able to work out what is selected

i was trying the following - but cant seem to work out how to attach to the selectedindexchanged of the listcontrol so that i can set the selectd value(s) its not helping that my VB is not up to much but am forced to use it in this instance its not even giving me the intellisense for the event..

   Public Options As List(Of Options)
    Public ControlRenderType As ControlRenderType
    Public IncludeFreeOption As Boolean
    Public SelectedOptions As List(Of Options)

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init

        Dim c As ListControl
        Select Case (ControlRenderType)
            Case STGLib.ControlRenderType.CheckBoxList
                c = New CheckBoxList()
            Case STGLib.ControlRenderType.DropdownList
                c = New DropDownList()
            Case STGLib.ControlRenderType.RadioButtonList
                c = New RadioButtonList()

            Case Else
                Throw New Exception("No Render Type Specified")
        End Select

        For Each opt In Options
            Dim li = New ListItem(opt.Description, opt.ID)
            c.Items.Add(li)
        Next

        c.SelectedIndexChanged += ..?? or something
        Page.Controls.Add(c)

    End Sub

can anyone explain please - it is of course quite possible that I am going about this in completely the wrong way..

thanks

War es hilfreich?

Lösung

First create a Sub or a Function to handle the IndexChange of the object that you have created dynamically and make sure that the signature of the Sub is something like this

Sub myOwnSub(ByVal sender As Object, ByVal e As EventArgs)
...
...  Handle your event here
...
End Sub

Then after you create your object add the following code

Dim obj as ListBox
AddHandler obj.SelectedIndexChanged, AddressOf myOwnSub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top