Динамически созданный LinkButton не стремится к любым событиям

StackOverflow https://stackoverflow.com/questions/2598650

  •  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("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0}", tcPlaceholder.Text))
            tcPlaceholder.Text = String.Empty
            tcPlaceholder.Controls.Add(lnkAdd)
            tcPlaceholder.Controls.Add(litText)
     End If
End Sub

Этот код явно добавляет обработчик для LinkButton, но этот обработчик никогда не ударяется. Я также пробовал события на Radgrid (itemcommand, itemevent), но никто не попадает.

У кого-нибудь есть какие-то предложения других событий, чтобы попробовать, или способы сделать эту работу?

Спасибо!

Это было полезно?

Решение

Я не смог найти «хорошее» решение этого. В конце концов я сделал следующее:

  1. Создал кнопку в обработчике элементарного события, установив свой коммунальныйArgument к счетчику, который был увеличен для каждого создаваемого заголовка группы
  2. Опять созданная кнопка в событии ItemDatabound, снова настроек его коммунальныйArgument к счетчику счетчика. На данный момент я добавил запись в объект словаря (хранится в ViewState), связывая счетчика к фактическому значению группы.
  3. Обработал событие щелчка кнопки, извлечение группы группы из словаря в ViewState для завершения обработки.

Уродливый, но это работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top