我想在Sitefinity中创建一个自定义内容块,这样我就可以在它周围包装一个标签并拿起我的CSS。
我创建了一个自定义小部件,但我不确定如何将其作为内容块。我找不到关于此的文档,但我确信这是常见的。基本上,我想要一个拖出内容块来执行此操作:
<aside>
[code for content block]
</aside>
我不知道如何在.net中生成[内容块]代码。我是.net开发的新手。我使用VB但可以使用C#。
非常感谢任何帮助。谢谢。
玛利亚
答案 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”。
只需将其更改为您创建的模板的虚拟路径,然后保存并发布该页面。
内容块将使用您的模板而不是默认模板进行渲染,并添加任何标记。
我希望这有用!
我将创建一个更详细的博客文章,介绍这个过程,并在我完成后将其链接到此处。谢谢你的灵感!