gpt4 book ai didi

c# - 如何以编程方式向 contentPlaceHolder 添加内容?

转载 作者:太空狗 更新时间:2023-10-29 20:00:09 24 4
gpt4 key购买 nike

我有一个母版页,我的所有页面都继承了它。对于格式化,我想将一页与另一页不同的内容放在 ContentPlaceHolder 中。

现在,我如何将所有内容插入其中?由于我计划用数据库中的内容填充 ContentPlaceHolder,我想我必须以编程方式进行。

  1. 如何向 ContentPlace Holder 添加控件?我检查了其他answers ,但我无法通过其 ID 访问它。

  2. 我应该从一开始就使用多个 ContentPlaceHolder 吗?假设我想放电影。应该只有一个包含所有图片、描述和评级,还是每个事物都有一个 ContentPlaceHolder?

我对其他解决方案持开放态度,因为我没有使用 ASP 的经验。

最佳答案

老问题...但我刚遇到这个问题,这是 Google 上排名第一的帖子,所以我想我会添加我的答案,因为其他人对我的情况不起作用。

这是我在常规 <asp:Content 时的做法不会工作(虽然在正常使用中,@JayC 的答案是你如何做到的):

MasterPage 有这个 ContentPlaceHolder :

<asp:ContentPlaceHolder ID="ScriptsPlace" runat="server"></asp:ContentPlaceHolder>

必须从用户控件动态添加一些 JavaScript。尝试使用 ContentPlaceHolder直接给出这个错误:

Parser Error Message: Content controls have to be top-level controls in a content page or a nested master page that references a master page.

所以我想从代码隐藏中添加脚本。这是 .ascx 的页面加载文件:

protected void Page_Load(object sender, EventArgs e)
{
ContentPlaceHolder c = Page.Master.FindControl("ScriptsPlace") as ContentPlaceHolder;
if (c != null)
{
LiteralControl l = new LiteralControl();
l.Text="<script type=\"text/javascript\">$(document).ready(function () {js stuff;});</script>";
c.Controls.Add(l);
}
}

更新:所以事实证明我不得不在比我预期更多的地方使用它,并最终使用了一种更加灵活/可读的方式。在用户控件本身中,我只是用常规 div 包装了 javascript 和其他任何需要移动的东西。 .

<div id="_jsDiv" runat="server">
$(document).ready(function() {
//js stuff
});
Other server controls or HTML junk
</div>

然后后面的代码会找到那个div,然后把它移到ContentPlaceHolder中。 .

protected void Page_Load(object sender, EventArgs e)
{
ContentPlaceHolder c = Page.Master.FindControl("ScriptsPlace") as ContentPlaceHolder;
HtmlGenericCOntrol jsDiv = this.FindControl("_jsDiv") as HtmlGenericControl;
if (c != null && jsDiv != null)
{
c.Controls.Add(jsDiv);
}
}

我实际上把这段代码放在一个自定义用户控件中,我只是让我的常规用户控件继承自自定义用户控件,所以一旦我用 <div id="_jsDiv" runat="server"> 包装 javascript/etc ,自定义用户控件负责其余部分,我无需在用户控件的代码隐藏中执行任何操作。

关于c# - 如何以编程方式向 contentPlaceHolder 添加内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com