Kentico 7在Portal Master中创建内容占位符以在继承页面中的ASCX中使用

时间:2016-02-25 21:47:53

标签: ascx kentico

在继承自Portal Master的Ad-Hoc页面上使用Kentico 7。我想在呈现的ad-hoc页面中的</body>标记之前插入一些文字脚本或代码。

我认为我必须通过编辑门户网站主文件并添加以下内容来执行此操作:

<cms:CMSPagePlaceholder ID="plcBodyEnd" runat="server">
   <LayoutTemplate>
   </LayoutTemplate>
</cms:CMSPagePlaceholder>

然后在Ad-Hoc页面的布局中执行以下操作:

<cms:CMSContent runat="server" id="cntLeft" PagePlaceholderID="plcBodyEnd">
<script type="text/javascript"> 
ProviderConnections.Transparency.initializeWidget({ }); 
</script> 
</cms:CMSContent>

这很好用,直到我进入Ad-Hoc页面上的设计选项卡,我收到了以下错误:

Object reference not set to an instance of an object.

我不想注册脚本块。我只想将文本放在由</body>标记之前的Ad-Hoc页面中,该标记由Portal Master控制。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不是100%肯定你想要实现的目标。举例或附上截图非常有帮助。

以下是在Kentico中附加JavaScript的方法:

通过门户引擎:

  • 使用JavaScript网页部件 - 您可以选择选择脚本的位置

JavaScript web part

以编程方式进行代码隐藏:

  • 使用CMS.Helpers.ScriptHelper API(ASP.NET的ClientScriptManager包装器)
    • ScriptHelper.RegisterStartupScript()将脚本放在页面末尾
    • ScriptHelper.RegisterClientScriptBlock()将脚本放在页面元素之前
  • 两者之间的差异很好地解释了here

以编程方式从ASPX标记:

  • <script>块放入.aspx / .ascx文件中的所需位置
  • 评估包含脚本

    的代码隐藏变量

    <asp:Button ID="btnOK" runat="server" Text="OK" /> <script type="text/javascript"> <%= fieldWithActualScript %> </script>