0

我有一个 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 页面中有一个按钮。我从这个按钮中隐藏了一些Panels 。UserControl onClick代码正在正确执行,但是当我看到输出时它没有任何效果(所有控件都可见)。

代码button_click

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

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

谢谢

4

1 回答 1

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;
于 2013-10-16T07:12:52.090 回答