访问子用户控件中的父页面控件

时间:2013-06-26 05:25:52

标签: c# asp.net findcontrol

我有一个aspx页面,其中我有Ajax UpdatePanel,它有一个AJAX Tabcontainer,它有5个标签。在First选项卡中,我有一个ProductD的DropDownList。在第二个选项卡中,我使用了UserControl,其参数需要根据productID进行反映。我想访问用户控件中的DropDownList ProductID,我没有得到。我的部分代码是

DropDownList IDList = (DropDownList)(this.Parent.FindControl("ProductID");

这不起作用,我得到NULL。我也试过了

DropDownList IDList = (DropDownList)(this.Page.FindControl("ProductID");

请告诉我如何做到这一点。

正如所要求的部分必要代码是

<asp:UpdatePanel ID="UpdatePanelTankFormula" runat="server">
    <ContentTemplate>
        <asp:tabcontainer id="TabContainerTankFormula" AutoPostBack="true" runat="server" OnClientActiveTabChanged="clientActiveTabChanged"   activetabindex="0" style="width:100%;">  

           <asp:TabPanel ID="InputDataTab" runat="server"  HeaderText="Data Input">
               <ContentTemplate> 
                   <asp:DropDownList id="TankNameCombo" DataTextField="TankName" runat="server" AutoPostBack="true" DataValueField="customertankid"   width="200px" onclick="javascript:SetHiddenField();">    </asp:DropDownList>
               </ContentTemplate> 
           </asp:TabPanel>

           <asp:TabPanel ID="LacticAcidAdditionTab" runat="server"  HeaderText="Lactic Acid Addition">
               <ContentTemplate> 
                   //My user control
                   <UC:TankNote runat="server" ID="LaticTankNotesUC" GetNoteType="LAC" MEQMode="False"></UC:TankNote> 
               </ContentTemplate> 
           </asp:TabPanel>

        </asp:tabcontainer>
    <ContentTemplate>
</asp:UpdatePanel>

现在在这个用户控件的代码后面我想访问这个我没有得到的DropDownList。对于修复,我定义了一个返回此列表值的Public函数。但它的修复不是解决方案。

1 个答案:

答案 0 :(得分:0)

在标签控件中你会有这样的东西。

 <cc1:TabContainer ID="TabContainer1" runat="server">
    <cc1:TabPanel ID="TabPanel1" runat="server">
        <ContentTemplate>
            <asp:DropDownList id="dropdownlist1" runat="Server"/>
        </ContentTemplate>
    </cc1:TabPanel>

首先你需要找到tabPanel1,然后找到dropdownlist1,如下所示。

TabContainer TabContainer1= (TabContainer)(this.Page.FindControl("TabContainer1");
if (TabContainer1!=null){
TabPanel TabPanel1= (TabPanel)(this.TabContainer1.FindControl("TabPanel1");
if(TabPanel1 !=null){
DropDownList dropdownlist1= (DropDownList)(this.TabPanel1.FindControl("dropdownlist1");

}}