我有一个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面板会产生问题。我无法理解。请建议。
谢谢
答案 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;