我遇到了動態創建並插入到我的頁面中的Web控件的問題。我創建了幾個LinkButtons,具體取決於所做搜索的數據,並且我試圖爲每個Button添加一個Event Handler,所以它會過濾結果。動態創建控件未觸發的事件
控件已正確初始化,但事件永遠不會被觸發。
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
任何想法?
如果將頁面或UserControl的[ClientIDMode](http://www.dotnetperls.com/keyvaluepair)設置爲「Static」,它會工作嗎? –
我忘了提及我正在使用ASP.Net 2.0,並且ClientIDMode僅在4.0中引入,所以這不會有幫助... – Chnoch