Событие Firing не работает на SelectedIndexChanged

Моя веб-страница создается динамически в VB.Net (aspx).

У меня есть флажок, который после проверки откроет новое окно. При открытии окна некоторые параметры передаются для использования правильных данных в окне, однако есть один параметр (FM), который имеет неизвестное значение на момент установки флажка.

Этот параметр зависит от значения внутри другого динамически созданного элемента управления с именем ddlFM (radcombobox). Для передачи этого последнего параметра я буду использовать параметр сеанса. Этот параметр в свой ход должен быть заполнен, когда один из radcombobox меняет свое значение.

В функции сборки я создал следующее: (отредактировано)

Dim ddlFM As New RadComboBox
Dim sdsFM As New SqlDataSource()

ddlFM.DataTextField = "Value"
ddlFM.DataValueField = "Value"

cell.Controls.Add(ddlFM)
AddHandler ddlFM.SelectedIndexChanged, AddressOf Me.ddlFM_SelectionChanged
cell.Controls.Add(sdsFM)

sdsFM.SelectCommand = 'select values from table'
sdsFM.SelectCommand = 'Connectionstring'
sdsFM.DataBind()

Me.ddlFM_SelectionChanged будет следующим:

Public Sub ddlFM_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs)
    getAllCycleNumbers()
End Sub

здесь getAllCycleNumbers гарантирует, что заполнены правильные идентификаторы сеанса.

Моя проблема в том, что событие, похоже, не запускается...

РЕДАКТИРОВАТЬ:

После поста Мюррея (который потом исчез) я добавил следующую строчку

Friend WithEvents ddlFM As RadComboBox

Однако это ничего не дало...


person Schuere    schedule 21.12.2012    source источник
comment
Отредактировано для добавления друга с кодом событий...   -  person Schuere    schedule 21.12.2012
comment
Вы уверены, что повторно связываете обработчик событий при динамическом создании элементов управления.   -  person Paritosh    schedule 21.12.2012
comment
Паринтош, я редактировал эту часть, может быть я что-то упустил, что всегда может случиться.   -  person Schuere    schedule 21.12.2012


Ответы (1)


Поможет ли это, если вы сделаете это так?

AddHandler ddlFM.SelectedIndexChanged, New EventHandler(AddressOf ddlFM_SelectionChanged)

тебе тоже может быть нужно

ddlFM.AutoPostBack = True
person 5uperdan    schedule 21.12.2012
comment
при размещении автопостбека код передает обработчик событий, с другой стороны все данные, которые были созданы до автопостбека, удаляются - person Schuere; 26.12.2012
comment
@Schuere Думаю, я знаю, что ты имеешь в виду. Когда страница отправляется обратно, событие загрузки страницы запускается перед обратной передачей. Вам нужно будет обрабатывать контент, который вы не хотите обновлять по умолчанию, используя If page.ispostback = true - person 5uperdan; 31.12.2012