【问题标题】:What is the simpliest way to add a single image to a Sitefinity template?将单个图像添加到 Sitefinity 模板的最简单方法是什么?
【发布时间】:2014-05-21 03:23:38
【问题描述】:

我安装了 Sitefinity 7.0。我添加了一个自定义内容类型,其中包括 single、必填、图像的字段。

我为此内容类型创建了一个自定义模板。在该站点上,您可以单击示例以了解如何将字段添加到小部件模板。这就是它给我的“图片”字段:

<%--The following namespace should be registered at the top of the control if it doesn't exists--%>      
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Libraries.Web.UI.Images" TagPrefix="sf" %>      
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Libraries.Web.UI" TagPrefix="sf" %>
            <sf:ImagesView ControlDefinitionName="ImagesFrontend" runat="server" MasterViewName="ImagesFrontendThumbnailsListLightBox" Title="" UrlKeyPrefix="">
                <RelatedDataDefinition RelatedFieldName="Picture" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.GIARRecipients.GiarRecipient" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer">
                </RelatedDataDefinition>    
                <ControlDefinition ControlDefinitionName="ImagesFrontend" runat="server" ProviderName="OpenAccessDataProvider">
                    <Views>
                        <sf:ImagesViewMasterDefinition SortExpression="" ViewName="ImagesFrontendThumbnailsListBasic" runat="server">
                        </sf:ImagesViewMasterDefinition>
                        <sf:ImagesViewMasterDefinition  SortExpression="" ViewName="ImagesFrontendThumbnailsListLightBox" runat="server">
                        </sf:ImagesViewMasterDefinition>
                        <sf:ImagesViewMasterDefinition  SortExpression="" ViewName="ImagesFrontendThumbnailsListSimple" runat="server">
                        </sf:ImagesViewMasterDefinition>
                        <sf:ImagesViewMasterDefinition  SortExpression="" ViewName="ImagesFrontendThumbnailsListStrip" runat="server">
                        </sf:ImagesViewMasterDefinition>
                        <sf:ImagesViewDetailDefinition ViewName="ImagesDetailView" runat="server">
                        </sf:ImagesViewDetailDefinition>
                    </Views>
                </ControlDefinition >
            </sf:ImagesView>

这太过分了,生成的标记使用&lt;ul&gt;&lt;li&gt;,即使它始终只是一张图片。理想情况下,我希望它像&lt;img src='&lt;%# Eval("Picture") %&gt;' /&gt; 一样简单

将单个图像添加到 Sitefinity 模板的最简单方法是什么?

【问题讨论】:

    标签: sitefinity


    【解决方案1】:

    对于自定义内容类型的图像字段,您可以通过在添加字段时单击“限制”选项卡来限制图像的数量。选择“只能上传或选择一张图片”

    .

    模板中使用的控件是 Sitefinity Images 控件:

    <sf:ImageControl runat="server" Title="" UrlKeyPrefix=""  ProviderName="OpenAccessDataProvider" >
        <RelatedDataDefinition RelatedFieldName="OneImage" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.Solutions.Solution" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer">
        </RelatedDataDefinition>
    </sf:ImageControl>
    

    而被渲染的标记是一个包裹在 div 中的图像标签:

    <div class="sfimageWrp">                    
        <img id="ctl09_ctl00_ctl00_detailContainer_ctl03_0_ctl00_0_ctl00_0_imageItem_0" title="ootb" src="/images/default-source/default-album/ootb.png?sfvrsn=0" alt="ootb">
    </div>
    

    【讨论】:

    • 你是对的:字段限制未设置为 1。
    【解决方案2】:

    我选择 Ben 的答案是正确的,但同时我发现的另一个替代方案可能也值得一提。

    <img src='<%# ((Telerik.Sitefinity.Libraries.Model.Image)Eval("Picture")).Url %>' />
    

    【讨论】:

    • 我目前正在开发我的第一个 Sitefinity 项目(也是第一个 .NET 项目),我迫不及待地想要回到 Linux 环境。话虽如此,我更喜欢控制自己的标记(不会自动将其包装在 div 中或给出一些疯狂的长 ID),所以我更喜欢这种方法。我总是使用&lt;img src='&lt;% Eval("Image").Url %&gt;' /&gt; 或其他方法仅将我需要的数据块放入我的标记中。
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 2018-07-04
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多