因此,首先让我提及,这与发布的其他两个有利问题相似。我已经使用这些(Post One,Post Two)来尝试帮助我的处境,但是我离解决我的问题还很近。
我在下面添加了相关代码,同时也谨记不要发布“代码墙”。
目标
所以我想做的是将click事件添加到以编程方式创建的Button中。每个按钮将启动postBack并将数据保存到数据库,而无需重新呈现整个页面。
问题
下面的“我的代码”可以编译,但是在页面呈现时该事件未绑定到控件,没有任何迹象表明“ click”事件已绑定到按钮。
我想知道我是在做错什么,还是被迫使用某些hack,或者是使用LinkButtons推荐的帖子之一。但是,我认为LinkButtons不适用于这种情况。我还引用了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。
希望这对其他人有帮助。
答案 0 :(得分:0)
尝试写作:
Handles ItemSelectBtn.Click
之后
ItemSelectBtn_Click([...])
答案 1 :(得分:0)
itemBtn.UseSubmitBehavior = False
是答案。我已经引用了一个指向MSDN页面的链接以及另一个与我试图完成的问题类似的SO问题。
感谢波波先生的帮助。