Events 动态创建的LinkButton不触发任何事件

Events 动态创建的LinkButton不触发任何事件,events,radgrid,linkbutton,Events,Radgrid,Linkbutton,我在Telerik RadGrid上定制组标题,方法是在ItemDataBound事件期间向其中注入链接按钮。该按钮呈现得非常完美,但我无法让它命中任何事件处理程序 以下是创建按钮的代码: Private Sub rgWorkRequestItemCosts_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgWorkRequestItemCosts.ItemDa

我在Telerik RadGrid上定制组标题,方法是在ItemDataBound事件期间向其中注入链接按钮。该按钮呈现得非常完美,但我无法让它命中任何事件处理程序

以下是创建按钮的代码:

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
Private子rgWorkRequestItemCosts\u ItemDataBound(ByVal sender作为对象,ByVal e作为Telerik.Web.UI.GridItemEventArgs)处理rgWorkRequestItemCosts.ItemDataBound
如果e.项的类型为GridGroupHeaderItem,则
作为GridGroupHeaderItem的Dim oItem=DirectCast(例如项,GridGroupHeaderItem)
Dim lnkAdd作为新链接按钮()
lnkAdd.ID=“lnkAdd”
lnkAdd.CommandName=“CustomAddWorkRequestItemCost”
lnkAdd.CommandArgument=DirectCast(oItem.DataItem,DataRowView).Row(“nWorkRequestItemID”).ToString()
lnkAdd.Text=String.Format(“添加新成本”,解析URL(String.Format(“~/App_Themes/{0}/Grid/AddRecord.gif”,Page.Theme)))
lnkAdd.Style(“颜色”)=“000000”
lnkAdd.Style(“文本装饰”)=“无”
AddHandler lnkAdd.单击,lnkAdd的地址单击
Dim tcPlaceholder作为GridTableCell=DirectCast(oItem.Controls(1),GridTableCell)
Dim litText作为新的LiteralControl(String.Format(“{0}”,tcPlaceholder.Text))
tcPlaceholder.Text=String.Empty
tcPlaceholder.Controls.Add(lnkAdd)
tcPlaceholder.Controls.Add(litText)
如果结束
端接头
这段代码显式地为LinkButton添加了一个处理程序,但该处理程序从未被命中。我也尝试过RadGrid上的事件(ItemCommand,ItemEvent),但似乎没有一个被击中

有没有人对其他活动有什么建议可以尝试,或者有什么方法可以让它发挥作用

谢谢

我没能找到一个“好”的解决方案。最后,我做了以下工作:

  • 在中创建按钮 ItemCreated事件处理程序,设置 它的命令指向计数器 每增加一次 已创建组标头
  • 再次在中创建按钮 ItemDataBound事件,再次显示设置 它的论点是反对的 价值在这一点上,我添加了一个 记录到字典对象 (存储在ViewState中)链接 计数器的实际值 小组
  • 已处理的单击事件 按钮,提取组值 从viewstate中的字典到 完成处理

  • 难看,但它可以工作。

    您可以单击事件,它可以工作。只需检查列标题并传递行id即可。