0

我想在 Sitefinity 中创建一个自定义内容块,这样我就可以在它周围包裹一个标签并获取我的 CSS。

我创建了一个自定义小部件,但我不确定如何使其成为内容块。我找不到这方面的文档,但我确信这是很常见的情况。基本上,我想要一个这样做的内容块:

<aside>
[code for content block]
</aside> 

我不知道如何在 .net 中生成 [内容块] 代码。我是.net 开发的新手。我正在使用 VB,但可以使用 C#。

任何帮助将不胜感激。谢谢你。

玛丽亚

4

2 回答 2

1

您可以创建一个自定义布局控件,该控件可以与其他控件(例如内容块)一起使用。

若要创建布局控件,请在 Visual Studio 中打开您的项目并在 WebApp 项目中创建一个新的控件 (.ascx) 文件。我通常把我的放在我创建的 ~/LayoutControls 文件夹中。在该控制文件中,输入如下内容:

<div runat="server" class="sf_cols">
    <aside>
        <div id="Div1" runat="server" class="sf_colsIn"></div>
    </aside>
</div>

您会注意到,除了您想要的aside标记、标签之外,我还有另外两个带有一些细节的 div。这些是必需的,因此 Sitefinity 可以将其视为控件,并能够动态地将内容注入其中。

具有类的 divsf_cols对所有控件都是通用的,具有类sf_colsIn(id="Div1") 的 div 是您拖放到布局控件上的控件所在的位置。所以有一个外包装 div、你的标记和一个内部 div。这是您的内容所在的内部 div。

保存文件,编译项目,然后在 Sitefinity 中注册控件。

为此,请登录到后端,然后导航到管理 | 设置 | 高级设置 | 工具箱 | 工具箱 | 页面布局 | 部分。我通常会添加一个具有以下属性的新部分:

name=Custom,Title=Custom,Description=Custom Layouts,Global resourceClassId=PageResources

然后选择您的新部分,选择工具,然后选择新建。Name、Title、Description 对你来说是有意义的。控制 CLR 类型应该是Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity,布局模板应该是 ascx 文件的路径,即~/LayoutControls/AsideBlock.ascx. 其他属性可以具有默认值(大多数只是空白)。然后保存。

现在,当您编辑页面时,单击右侧栏中的“布局”按钮,您将看到包含您的控件的“自定义”部分。将其拖到页面上,然后返回到“内容”编辑(使用右侧栏中的按钮)。您将看到您的布局控件并将内容块拖放到它上面。

正常添加内容。当页面呈现时,内容将被包装在 side 标记中。

于 2013-08-23T12:40:28.723 回答
0

最简单的方法是使用内容块的外部模板。您想要的模板是 ContentBlock.ascx 并且在 SDK 中。

将此文件复制到您的项目中,然后在contentHtml文字控件(呈现控件的实际内容)周围添加包装标签。

然后打开要使用此模板的内容块小部件的高级设置并指定 LayoutTemplatePath。它应该具有类似于“~/SFRES/Telerik.Sitefinity.Resources.Templates.Backend.GenericContent.ContentBlock.ascx”的默认值。

只需将其更改为您创建的模板的虚拟路径,然后保存并发布页面。

内容块将使用您添加的任何标记呈现您的模板,而不是默认模板。

我希望这是有帮助的!

我将创建一个更详细的博客文章来介绍此过程,并在完成后将其链接到此处。谢谢你给我灵感!

于 2012-10-31T20:30:02.623 回答