c# – 如何以编程方式将内容添加到contentPlaceHolder?

c# – 如何以编程方式将内容添加到contentPlaceHolder?,第1张

概述我有一个母版页,我的所有页面都继承了它. 对于格式化,我想在ContentPlaceHolder中放置不同页面的内容. 现在,我怎么能插入一切呢?由于我打算用数据库中的东西填充ContentPlaceHolder,我想我必须以编程方式进行填充. >如何向ContentPlace Holder添加控件? 我检查了其他answers,但我无法通过其ID访问它. >我应该从开始使用多个ContentPl 我有一个母版页,我的所有页面都继承了它.
对于格式化,我想在ContentPlaceHolder中放置不同页面的内容.

现在,我怎么能插入一切呢?由于我打算用数据库中的东西填充ContentPlaceHolder,我想我必须以编程方式进行填充.

>如何向ContentPlace Holder添加控件?
我检查了其他answers,但我无法通过其ID访问它.
>我应该从开始使用多个ContentPlaceHolders吗?假设我想放电影.如果只有一个包含所有图像,描述和评级,每个东西都要有一个ContentPlaceHolder吗?

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

解决方法 老问题……但是我刚刚遇到了这个问题,这是第一篇关于谷歌的帖子,所以我想补充一下,因为其他人在我的案例中没有用.

这是我在常规< asp:内容不起作用时的做法(虽然在正常使用中,答案@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);    }}

更新:事实证明我必须在比预期更多的地方使用它,并最终使用更灵活/可读的方式.在用户控件本身,我只是包装了JavaScript以及需要使用常规div移动的任何其他内容.

<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”&gt包装JavaScript / etc ;,自定义用户控件负责其余部分,我不必在用户控件的代码后面做任何事情.

总结

以上是内存溢出为你收集整理的c# – 如何以编程方式将内容添加到contentPlaceHolder?全部内容,希望文章能够帮你解决c# – 如何以编程方式将内容添加到contentPlaceHolder?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存