【发布时间】:2011-11-21 12:31:34
【问题描述】:
这与所有其他问题有点不同,因为它们似乎都专门针对头部内容。有了这个,我有一个带有以下占位符的用户控件:
<asp:PlaceHolder runat="server" ID="DiscussIncludes">
<script>
var OnLastPage = <asp:Literal runat="server" ID="OnLastPageJS" />;
var AJAXWait = false;
var MinChars = <%=Settings.MinimumCommentChars%>;
var AJAXURL = "<%=ResolveClientUrl("~/Handlers/DiscussAjaxHandler.ashx")%>";
var CurrUsername = "<%=ThisUser.Username %>";
var GravHash = "<asp:Literal runat="server" ID="GravJSRef" />";
var RelURL = "<%=ResolveClientUrl("~/users/")%>";
var Anch = "<%=Anchor.ToString()%>";
var MyRep = "<%=MyRepString%>";
var CurrReportID = 0;
var LastPageURL = "<asp:Literal runat="server" ID="JSLastPageURL" />";
var AllowedChars = <%=Settings.MaxCommentChars %>;
</script>
<script src="<%=CommonFunctions.AllocateStaticPath("/js/Discuss.js?v=" + Settings.JSVersionID)%>"></script>
<script src="<%=CommonFunctions.AllocateStaticPath("/js/BlockUI.js?v=" + Settings.JSVersionID)%>"></script>
</asp:PlaceHolder>
在我后面的代码中:
ContentPlaceHolder FooterControl = (ContentPlaceHolder)Page.Master.FindControl("JavascriptIncludes");
FooterControl.Controls.Add(DiscussIncludes);
这会引发错误:
无法修改 Controls 集合,因为该控件包含代码块(即 )。
在FooterControl.Controls.Add(DiscussIncludes); 线上。我尝试将占位符内的所有<%= 更改为<%#,但没有运气。
需要注意的一点是,此控件在我的所有其他页面上都可以正常工作。有什么想法会导致这种情况吗?
【问题讨论】:
-
您是否使用
<%#表达式致电FooterControl.DataBind()? -
@Yuriy,是的,它抛出了同样的错误:(
标签: c# asp.net .net user-controls