【发布时间】:2011-07-01 09:20:48
【问题描述】:
我在使用动态创建并插入到我的页面中的 Web 控件时遇到问题。我创建了几个链接按钮,具体取决于所做的搜索数据,并且我正在尝试为每个按钮添加一个事件处理程序,以便过滤结果。
控件已正确初始化,但从未触发事件。
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
Controls.Clear()
Dim btn As Controls.LocalizableLinkButton
For Each element As Generic.KeyValuePair(Of String, ResultFilterData) In m_list
btn = New LocalizableLinkButton
btn.ID = m_Name & "$lnk" & count
btn.Label = element.Value.Label.Append(" (" + CStr(element.Value.Count) + ")")
btn.CommandArgument = element.Value.Key
AddHandler btn.Click, AddressOf Me.btn_Click
Controls.Add(btn)
Next
End Sub
由于此代码在 Page_Init 中,所有控件都应在回发时重新创建。 (LocalizableLinkButton 只是 LinkButton 的扩展,用于向文本添加多语言功能)。
问题在于从未调用方法 btn_Click。链接按钮在回调中正确初始化,具有与以前相同的 ID。但该事件没有触发。
我正在使用 ASP.Net 2.0
有什么想法吗?
【问题讨论】:
-
如果您将页面或用户控件的ClientIDMode 设置为“静态”`,它是否有效?
-
我忘了说我用的是ASP.Net 2.0,而且ClientIDMode是4.0才引入的,所以没用...