vb.net如何从控件中按钮上的Click事件调用的函数中获取TabContainer控件?

时间:2019-04-29 14:36:44

标签: asp.net vb.net

我有一个vb.net应用程序,其中一页显示TabContainer

<div class="centreMain">
    <con1:TabContainer ID="addClient" CssClass="tab" runat="server">
        <con1:TabPanel ID="tab1" runat="server" Enabled="true" HeaderText="Tab 1">
            <ContentTemplate>
                <div class="body">
                    ...
                </div>
            </ContentTemplate>
        </con1:TabPanel>
        <con1:TabPanel ID="contacts" runat="server" Enabled="true", HeaderText="Contacts">
            <ContentTemplate>
                <div class="body">
                    <template1:AB ID="CM_1" runat="server" CssClass="tab_content" />
                    <template2:CD ID="ANCM_1" runat="server" CssClass="tab_container" />
                </div>
            </ContentTemplate>
        </con1:TabPanel>
    </con1:TabContainer>
</div>

ABCD是两个不同的控制模块(在App / Controls中定义)。

尽管我当前同时在选项卡中同时显示两个控件,但我真正想做的是默认情况下显示CM_1,然后在用户单击特定按钮时显示(在CM_1控件上),重新绘制选项卡内容以显示ANCM_1控件,而不是CM_1控件。

CM_1控件中,有一个按钮:

<asp:Button ID="btnAddContact" CssClass="button" runat="server" Text="+ Add new contact" />

我想重绘<con1:TabPanel ID="contacts" ... ></con1:TabPanel>的内容,以在单击{{}上的ANCM_1按钮时在CM_1控件的位置显示btnAddContact控件1}}控制。

我该怎么做?

修改

在我的CM_1文件(其中CM.ascx.vb被定义为控件的控制模块)中,我添加了一个函数来处理对template1:AB按钮的单击:

btnAddContact

当我单击Protected Sub btnAddContact_Click(sender As Object, e As System.EventArgs) Handles btnAddContact.Click Dim ID As String = Request.QueryString("ID") Dim tabControl As Control = Page.FindControl("addClient") Dim contactsTab As Control = Page.FindControl("contacts") Dim CM1 As Control = tabControl.FindControl("CM_1") Dim ANCM1 As Control = tabControl.FindControl("ANCM_1") CM1.Visible = False ANCM1.Visible = True End Sub 按钮时,我碰到了在此功能上设置的断点:在逐步执行该功能时,我可以看到

  • btnAddContact变量已正确填充
  • ID被分配了tabControl
  • AjaxControlToolkit.TabContainer变量的值为contactsTab
  • Nothing变量的值为CM1
  • Nothing变量的值为ANCM1

我在这里做错了什么?如何在此函数中正确获取NothingcontactsTabCM1对象?

0 个答案:

没有答案