我的内容页面如下所示:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Basket.aspx.cs" Inherits="Basket" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
现在,我想在页面加载时动态添加一些控件到内容中,所以我尝试使用以下代码:
protected void Page_Load(object sender, EventArgs e)
{
Content2. // I want to add controls to it dynamically
}
问题是Content2
编译器看不到控件,并且我收到有关缺少指令或程序集引用的错误。
有什么解决办法吗?
你无法获得参考的原因asp:Content
控制是因为当页面与母版页组合时它不会保留。基本上 ASP 从这些内部获取所有控件asp:Content
部分并使它们成为ContentPlaceholder
母版页内的控件。
As MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.content.aspx says: 内容控件不会在运行时添加到控件层次结构中。相反,Content 控件中的内容会直接合并到相应的 ContentPlaceHolder 控件中。
这意味着如果您想向该部分添加更多控件,您将必须获得对ContentPlaceholder
控制母版页并将它们添加到其中。就像是:
ContentPlaceHolder myContent = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");
myContent.Controls.Add(??);
请注意您正在使用ContentPlaceHolderID
值,而不是ID
of the asp:Content
部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)