我使用以下代码动态创建了5个Ajax Tab面板:
Dim gv As GridView
ds = gc.GetDataToListBinder("select distinct(tabname) from Parameteronline where isactive='Y'")
For i = 0 To ds.Tables(0).Rows.Count - 1
Dim tpParameter As AjaxControlToolkit.TabPanel = New AjaxControlToolkit.TabPanel()
tpParameter.ID = "Panel_" & ds.Tables(0).Rows(i)(0).ToString()
tpParameter.HeaderText = ds.Tables(0).Rows(i)(0).ToString()
TabContainer1.Tabs.Add(tpParameter)
Next
通过这个我在一个容器中成功获得了5个通道,其容器是:
Panel_API,Panel_Court,Panel_Jail,Panel_Utilities,Panel_Common
由于所有这些ID和面板都是动态创建的,我不明白我应该如何识别任何面板上的点击事件?
如何为动态创建的标签控件编写事件?
虽然我在C#中使用VB.NET答案也可以帮助我。
请帮帮我。
答案 0 :(得分:0)
我按照以下方式做到了:
Protected Sub TabContainer1_ActiveTabChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Handles TabContainer1.ActiveTabChanged
Dim actTab As String = TabContainer1.ActiveTab.ID.ToString()
Dim gv As GridView
ds = gc.GetDataToListBinder("select * from ParameterOnline where TabName='Courts'")
If actTab = "Panel_Courts" Then
gv.DataSource = ds.Tables(0)
TabContainer1.ActiveTab.Controls.Add(gv)
End If
End Sub