访问子用户控件中的父页控件
本文关键字:控件 用户 访问 | 更新日期: 2023-09-27 18:19:59
我有一个aspx页面,其中有Ajax UpdatePanel,它有一个Ajax Tabcontainer,它有5个选项卡。在第一个选项卡中,我有ProductID的DropDownList。在第二个选项卡中,我使用了一个UserControl,它的参数需要根据productID进行反映。我想访问用户控件中的DropDownList ProductID,但我没有得到它。我的部分代码是
DropDownList IDList = (DropDownList)(this.Parent.FindControl("ProductID");
这不起作用,我变空了。我也试过
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函数,它返回这个列表的值。但这是一个解决方案,而不是解决方案。
选项卡控件中会有类似的内容。
<cc1:TabContainer ID="TabContainer1" runat="server">
<cc1:TabPanel ID="TabPanel1" runat="server">
<ContentTemplate>
<asp:DropDownList id="dropdownlist1" runat="Server"/>
</ContentTemplate>
</cc1:TabPanel>
所以,首先你需要找到tabPanel1,然后像下面这样找到dropdownloadlist1。
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");
}}