Sitefinity中的自定义内容块

时间:2012-10-31 18:14:42

标签: asp.net sitefinity

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

我创建了一个自定义小部件,但我不确定如何将其作为内容块。我找不到关于此的文档,但我确信这是常见的。基本上,我想要一个拖出内容块来执行此操作:

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

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

非常感谢任何帮助。谢谢。

玛利亚

2 个答案:

答案 0 :(得分: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可以将其视为控件,并能够动态地将内容注入其中。

sf_cols的div对于所有控件都是通用的,而带有类sf_colsIn(id =“Div1”)的div是放置在布局控件上的控件。所以有一个外包装div,你的标记和一个内部div。这是你内容的内在div。

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

为此,请登录后端,然后导航到“管理”|设置|高级设置|工具箱|工具箱| PageLayouts |部分。我通常会添加一个包含这些属性的新部分:

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

然后选择新部分,选择工具,然后选择新建。名称,标题,描述是适合您控制的任何内容。 Control CLR Type应为Telerik.Sitefinity.Web.UI.LayoutControl, Telerik.Sitefinity,布局模板应为ascx文件的路径,即~/LayoutControls/AsideBlock.ascx。其他属性可以具有默认值(大多数只是空白)。然后保存。

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

正常添加内容。当页面呈现时,内容将包含在旁边标记中。

答案 1 :(得分:0)

最简单的方法是使用内容块的外部模板。您需要的模板是ContentBlock.ascx,位于SDK中。

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

然后打开要使用此模板的内容块小部件的“高级”设置,并指定LayoutTemplatePath。它的默认值应为“〜/ SFRes / Telerik.Sitefinity.Resources.Templates.Backend.GenericContent.ContentBlock.ascx”。

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

内容块将使用您的模板而不是默认模板进行渲染,并添加任何标记。

我希望这有用!

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