c# - ASP.NET/DotNetNuke - 将 HTML 添加到用户控件的正文中

标签 c# asp.net user-controls dotnetnuke google-tag-manager

我试图从 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/

相关文章:

c# - BLToolkit.3中InsertOrReplace的使用方法

C# XML 数组反序列化

c# - .NET 正则表达式查找分号时的负向前瞻

c# - Asp.NET 服务器控件回发

c# - 需要两个用户控件(winforms)进行通信时的最佳实践

c# - 您将如何比较两个 XML 文档?

c# - 如何在 asp.net 中使用分页保留 gridview 中控件的状态?

c# - page_load 和 onLoad 的区别

c# - 包含全窗口覆盖的用户控件

c# - 将行添加到数据库中,获取 ID 并填充第二个表