Wod*_*dzu 3 asp.net controls content-pages
我的内容页面如下所示:
<%@ 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>
Run Code Online (Sandbox Code Playgroud)
现在,我想在页面加载时动态地向内容添加一些控件,所以我尝试以下代码:
protected void Page_Load(object sender, EventArgs e)
{
Content2. // I want to add controls to it dynamically
}
Run Code Online (Sandbox Code Playgroud)
问题是Content2编译器看不到控件,我收到有关缺少指令或程序集引用的错误.
有解决方案吗
您无法获得对该asp:Content控件的引用的原因是因为当页面与母版页组合时它不会保留.ASP基本上从这些asp:Content部分中获取所有控件,并使它们ContentPlaceholder成为母版页内控件的子项.
正如MSDN所说:内容控件在运行时未添加到控件层次结构中.相反,Content控件中的内容直接合并到相应的ContentPlaceHolder控件中.
这意味着如果要向该部分添加更多控件,则必须ContentPlaceholder在母版页中获取对该控件的引用并将其添加到该页面.就像是:
ContentPlaceHolder myContent = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");
myContent.Controls.Add(??);
Run Code Online (Sandbox Code Playgroud)
请注意您使用的是ContentPlaceHolderID值,而不是ID该asp:Content部分的值.
| 归档时间: |
|
| 查看次数: |
3990 次 |
| 最近记录: |