当前位置: 首页 > 编程语言 > C#

如何以编程方式向contentPlaceHolder添加内容?Share

时间:2023-04-11 00:54:32 C#

如何以编程方式向contentPlaceHolder添加内容?我有一个母版页,我所有的页面都继承了它。对于格式化,我想将不同页面的内容放在ContentPlaceHolder中。现在,我该如何插入所有内容?因为我要用数据库中的内容填充ContentPlaceHolder,所以我想我必须以编程方式进行。如何向ContentPlaceHolder添加控件?我检查了其他答案,但我无法通过其ID访问它。我应该从多个ContentPlaceHolders开始吗?假设我想放电影。如果只有一个包含所有图像、描述和评级,是否应该为每个事物都有一个ContentPlaceHolder?我对其他解决方案持开放态度,因为我没有使用ASP的经验。老问题......但我刚刚遇到这个,这是谷歌上的第一篇文章,所以我想补充一下我的答案,因为其他人对我的情况不起作用。这是我在正常情况下不工作时的做法(尽管在正常使用中,答案是@JayC做到了):MasterPage有这个ContentPlaceHolder:必须从用户控件动态添加一些javascript。尝试直接使用ContentPlaceHolder会出现此错误:解析器错误消息:内容控件必须是内容页面中的顶级控件或引用母版页的嵌套母版页。所以我想从代码隐藏中添加脚本。这是.ascx文件的页面加载:protectedvoidPage_Load(objectsender,EventArgse){if(c!=null){LiteralControll=newLiteralControl();l.Text="";c.Controls.Add(l);更新:事实证明我必须在比预期更多的地方使用它并最终使用更灵活/可读的东西。在用户控件本身中,我只是包装了javascript和任何其他需要使用常规div移动的东西。$(document).ready(function(){//js东西});其他服务器控件或HTML垃圾然后后面的代码将找到div,然后将其移动到ContentPlaceHolder。protectedvoidPage_Load(objectsender,EventArgse){ContentPlaceHolderc=Page.Master.FindControl("ScriptsPlace")asContentPlaceHolder;HtmlGenericCONtroljsDiv=this.FindControl("_jsDiv")asHtmlGenericControl;if(c!=null&&jsDiv!=null){c.Controls.Add(jsDiv);我实际上把这段代码放在一个自定义用户控件中,我只是让我的常规用户控件继承自定义用户控件,所以一旦我用javascript/etc包装它,自定义用户控件就会处理剩下的事情,我不这样做必须在用户控件后面的代码中执行任何操作。通常发生的情况是,您使用正确的html和ContentPlaceHolder设置了母版页,然后您可以基于该母版页创建页面。如果您使用VisualStudio,并告诉它基于现有母版页创建新页面,它会为您添加内容区域。您将内容添加到新创建的页面中的内容区域。如果要将控件动态添加到主页(或任何)页面,您可以将控件添加到任何现有控件。如果它不应该以任何方式换行,只需添加一个占位符(它是一个asp.net控件)。我喜欢这个进入代码隐藏:stringstuff=@"";jsstuff.Text=东西;如果内容页和母版页的命名空间不相同,则无法在内容页的Codebehind中访问内容页控件。另外,检查您的设计器文件。如果控件没有在设计器文件中列出,则删除该文件并重新创建(项目->转换为Web应用程序)以上是C#学习教程:如何以编程方式向contentPlaceHolder添加内容?如果分享的所有内容对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: