動的に作成され、自分のページに挿入されるWebコントロールに問題があります。私は、作成された検索のデータに応じて、いくつかのLinkButtonを作成し、各ボタンに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)を「静的」に設定すると機能しますか? –
私はASP.Net 2.0を使用していると言いましたが、ClientIDModeは4.0でしか導入されていないので、役に立たないでしょう。 – Chnoch