Динамически созданный LinkButton не стремится к любым событиям
-
25-09-2019 - |
Вопрос
Я настраиваю заголовки группы на телерике Radgrid, впрыскивая ссылку в него во время мероприятия ItemDatubound. Кнопка отлично отображается, но я не могу получить его, чтобы ударить любые обработчики событий.
Вот код для создания кнопки:
Private Sub rgWorkRequestItemCosts_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgWorkRequestItemCosts.ItemDataBound
If TypeOf e.Item Is GridGroupHeaderItem Then
Dim oItem As GridGroupHeaderItem = DirectCast(e.Item, GridGroupHeaderItem)
Dim lnkAdd As New LinkButton()
lnkAdd.ID = "lnkAdd"
lnkAdd.CommandName = "CustomAddWorkRequestItemCost"
lnkAdd.CommandArgument = DirectCast(oItem.DataItem, DataRowView).Row("nWorkRequestItemID").ToString()
lnkAdd.Text = String.Format("<img style=""border:0px"" alt="""" width=""12"" src=""{0}"" /> Add new cost", ResolveUrl(String.Format("~/App_Themes/{0}/Grid/AddRecord.gif", Page.Theme)))
lnkAdd.Style("color") = "#000000"
lnkAdd.Style("text-decoration") = "none"
AddHandler lnkAdd.Click, AddressOf lnkAdd_Click
Dim tcPlaceholder As GridTableCell = DirectCast(oItem.Controls(1), GridTableCell)
Dim litText As New LiteralControl(String.Format(" {0}", tcPlaceholder.Text))
tcPlaceholder.Text = String.Empty
tcPlaceholder.Controls.Add(lnkAdd)
tcPlaceholder.Controls.Add(litText)
End If
End Sub
Этот код явно добавляет обработчик для LinkButton, но этот обработчик никогда не ударяется. Я также пробовал события на Radgrid (itemcommand, itemevent), но никто не попадает.
У кого-нибудь есть какие-то предложения других событий, чтобы попробовать, или способы сделать эту работу?
Спасибо!
Решение
Я не смог найти «хорошее» решение этого. В конце концов я сделал следующее:
- Создал кнопку в обработчике элементарного события, установив свой коммунальныйArgument к счетчику, который был увеличен для каждого создаваемого заголовка группы
- Опять созданная кнопка в событии ItemDatabound, снова настроек его коммунальныйArgument к счетчику счетчика. На данный момент я добавил запись в объект словаря (хранится в ViewState), связывая счетчика к фактическому значению группы.
- Обработал событие щелчка кнопки, извлечение группы группы из словаря в ViewState для завершения обработки.
Уродливый, но это работает.
Не связан с StackOverflow