从父页面访问动态添加的用户控件

时间:2013-10-14 10:41:56

标签: c# asp.net entity-framework user-controls

我有一个Product.aspx页面,其中有一个asp:panel。我正在使用以下方法在其中添加UserControl

protected void Page_Load(object sender, EventArgs e)
{            
    UserControl userControl = (UserControl)this.LoadControl(Programs/Test/Test.ascx);
    this.pnlLayoutDetails.Controls.Add(userControl);
    LayoutPanels = pnlLayoutDetails.Controls[1];
}

我在Product.aspx页面中有一个按钮。我隐藏了此按钮的Panel UserControl内的一些onClick。代码正在正确执行但当我看到输出时它没有显示任何效果(所有控件都可见)。

button_click

的代码
var pnlLayout = (Panel)LayoutPanels.FindControl("pnlLayout" + layout.LayoutID.ToString());
if (pnlLayout != null)
    pnlLayout.Visible = false;

更新:如果我从aspx页面中删除ajax面板,那么它可以正常工作。但是使用ajax面板会产生问题。我无法理解。请建议。

谢谢

1 个答案:

答案 0 :(得分:0)

我猜是because you might not have panel in update panel section

尝试将您的面板移动到aspx页面。它会解决你的问题。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

            <asp:Panel runat="server" ID="pnlLayoutDetails" >
                    //dynamically added usercontrol
            </asp:Panel>

    </ContentTemplate>
</asp:UpdatePanel>

然后执行它将起作用。

var pnlLayout = (Panel)LayoutPanels.FindControl("pnlLayout" + layout.LayoutID.ToString());
if (pnlLayout != null)
    pnlLayout.Visible = false;