动态按钮控件未绑定到VB.NET中的事件处理程序

时间:2019-01-08 20:43:56

标签: asp.net vb.net

因此,首先让我提及,这与发布的其他两个有利问题相似。我已经使用这些(Post OnePost Two)来尝试帮助我的处境,但是我离解决我的问题还很近。

我在下面添加了相关代码,同时也谨记不要发布“代码墙”。

目标

所以我想做的是将click事件添加到以编程方式创建的Button中。每个按钮将启动postBack并将数据保存到数据库,而无需重新呈现整个页面。

问题

下面的“我的代码”可以编译,但是在页面呈现时该事件未绑定到控件,没有任何迹象表明“ click”事件已绑定到按钮。

我想知道我是在做错什么,还是被迫使用某些hack,或者是使用LinkBut​​tons推荐的帖子之一。但是,我认为LinkBut​​tons不适用于这种情况。我还引用了LinkButton vs Button

欢迎所有反馈。谢谢。

page.ascx

<asp:UpdatePanel ID="parentWrapper" runat="server">
  <ContentTemplate>
    <asp:PlaceHolder ID="itemsPlaceHolder" runat="server" />
  </ContentTemplate>
</asp:UpdatePanel>

page.ascx.vb(隐藏代码)

Protected Sub Items_Load()
  'For Brevity purposes, only the itemBtn
  'is added to the parent controller. Other controls are omitted on purpose.
  'There are 200 other items that will be rendered as well.

  Dim itemContainer = New WebControl(HtmlTextWriterTag.Div),
      itemBtn = New Button()

  itemBtn.Text = "select"
  itemBtn.UseSubmitBehavior = False
  AddHandler itemBtn.Click, AddressOf ItemSelectBtn_Click

  itemContainer.Controls.Add(itemBtn)

  WorkshopsPlaceHolder.Controls.Add(itemContainer)

End Sub

Private Sub ItemSelectBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
        Response.Write("<script>console.log('clicked & doPostBack')</script>")
End Sub

更新

itemBtn.UseSubmitBehavior = False

所以我一直在做很多研究,到目前为止,这是帮助我实现目标的最佳选择。我不确定原始页面或网站对我有什么帮助,但它导致我进入了MSDN link

这篇SO帖子帮助了我Asp Button type

希望这对其他人有帮助。

2 个答案:

答案 0 :(得分:0)

尝试写作:

Handles ItemSelectBtn.Click

之后

ItemSelectBtn_Click([...])

答案 1 :(得分:0)

itemBtn.UseSubmitBehavior = False

是答案。我已经引用了一个指向MSDN页面的链接以及另一个与我试图完成的问题类似的SO问题。

感谢波波先生的帮助。