我试图把 - 看起来很简单 - 非常简单的网络用户控件
基本上我希望它基于属性呈现为下拉列表/ checkboxlist或radiolist 但也希望能够找出所选的内容
我正在尝试以下方法 - 但似乎无法解决如何附加到listcontrol的selectedindexchanged以便我可以设置选择的值(s) 它没有帮助我的VB不是很多,但我被迫在这种情况下使用它 它甚至没有给我这个活动的智力......
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
任何人都可以解释一下 - 我当然很可能以完全错误的方式解决这个问题。
感谢
答案 0 :(得分:1)
首先创建一个Sub或一个Function来处理动态创建的对象的IndexChange,并确保Sub的签名是这样的
Sub myOwnSub(ByVal sender As Object, ByVal e As EventArgs)
...
... Handle your event here
...
End Sub
然后在创建对象后添加以下代码
Dim obj as ListBox
AddHandler obj.SelectedIndexChanged, AddressOf myOwnSub