【问题标题】:handle events of control dynamically动态处理控制事件
【发布时间】:2013-07-20 05:21:55
【问题描述】:

我已经使用以下代码动态创建了 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

由此,我在一个 ID 为的容器中成功获得了 5 个帕斯内尔:

Panel_API、Panel_Court、Panel_Jail、Panel_Utilities、Panel_Common

由于所有这些 Id 和面板都是动态创建的,我不明白我应该如何识别任何面板上的点击事件?

如何为动态创建的选项卡控件编写事件?

虽然我在 C# 中使用 VB.NET 答案也可以帮助我。

请帮帮我。

【问题讨论】:

  • 你不能也动态附加事件吗?然后发件人成为该选项卡,您可以检查名称以确定单击了哪个选项卡。
  • @ermaganathanx 我做到了

标签: c# asp.net .net vb.net visual-studio-2008


【解决方案1】:

我是通过以下方式做到的:

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

【讨论】:

    猜你喜欢
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多