我试图从 ASP.NET 用户控件/DotNetNuke Skin 中的开始正文标签之后添加 HTML(特别是 Google 标签管理器 片段)代码隐藏。
我尝试了以下代码:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.Page.PreLoad += new EventHandler(Page_PreLoad);
}
protected void Page_PreLoad(object sender, EventArgs e)
{
HtmlGenericControl body = (HtmlGenericControl) Page.FindControl("ctl00$body");
body.Controls.AddAt(0, new Literal() {ID = "GoogleTagManager", Text = "(...)" };
}
到目前为止,这是有效的; HTML 出现在所需位置。但我注意到,每当执行代码时,似乎都不会处理以下 PostBacks。
我无法将 HTML 放入 .aspx 页面,因为我们有多个 DotNetNuke 门户,我们不想在其中使用相同的代码段。
有谁知道如何在保持回传工作的同时实现这一目标的解决方案?
__
来自瑞士的感谢和问候
拉斐尔
最佳答案
您可以为此使用客户端资源管理器占位符。
http://www.dnnsoftware.com/wiki/Page/Client-Resource-Management-API
具体来说,在您站点的 default.aspx 文件中,您会看到一个 BodySCRIPTS 占位符。
或者如果您愿意,您可以通过访问页面库来定位 Body ID 元素,我做了类似的事情来控制 https://dnnsimplearticle.codeplex.com/SourceControl/latest#cs/Controls/ArticleView.ascx.cs 中的页面标题
var tp = (CDefault)Page;
tp.Title = curArticle.Title;
关于c# - ASP.NET/DotNetNuke - 将 HTML 添加到用户控件的正文中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18696130/