我正在使用asp.net Web应用程序项目,我无法以编程方式访问任何asp:content控件。我正在尝试在代码后面更新其contentplaceholderID。这可能吗?
由于
答案 0 :(得分:2)
虽然您可能无法更改asp:Contents的ContentPlaceHolderId,但您可以直接控制ContentPlaceHolders的内容:通过其Master属性从页面访问母版页,然后使用FindControl函数在母版页上查找ContentPlaceHolder。之后,通过Controls属性编辑其内容。
var masterContent = Master.FindControl("largeContent") as ContentPlaceHolder;
masterContent.Controls.Add(new Literal { Text = "Hello, world!" });
您可以使用此'hack'将asp:Panel控件添加到您想要的任何ContentPlaceHolder中,这样可以模拟您想要的功能。
答案 1 :(得分:1)
否您无法更改内容页面中的contentPlaceHolderId。原因是contentplaceholder在Master页面中设置,然后您在那里引用它们以说明您的内容将在哪个contentplaceholder中。
内容控件留在控件层次结构中并且不存在。这里ASP.net thread提供了一种方法,可以通过另一种方式更新它