代码之家  ›  专栏  ›  技术社区  ›  Ben Collins

sharepoint呈现模板从字段设置属性

  •  2
  • Ben Collins  · 技术社区  · 16 年前

    我正在尝试编写一个自定义的呈现模板,用于列表的DisplayForm,其字段包括 Title HeaderImageUrl , Body . 到目前为止,我得到了以下信息:

    <SharePoint:RenderingTemplate ID="NewsListForm" runat="server">
     <Template>
      <h1><SharePoint:FieldValue FieldName="Title" runat="server"/></h1>
      <div>
          <p>
              <SharePoint:UrlField FieldName="HeaderImageUrl" runat="server"></SharePoint:UrlField>
              <SharePoint:RichTextField FieldName="Body" runat="server" />
          </p>
      </div>
     </Template>
    </SharePoint:RenderingTemplate>
    

    这个 字段配置为图像URL,但当我使用 UrlField 控件,它呈现一个链接。

    <asp:Image ImageUrl="<% FieldValue["HeaderImageUrl"] %>" runat="server"/>
    

    如果这类事情不可能,那么还有其他的控制吗 Microsoft.SharePoint.WebControls

    4 回复  |  直到 16 年前
        1
  •  2
  •   Zeb    16 年前

    即使上面的代码获得了HeaderImageUrl的值,它也不会像Url值那样工作(令人困惑):

    [指定的实际url][some wierd delimeter string][url的描述字段(如果您没有指定,通常会再次指定实际url)]

    如果你找到一种不用写C代码的方法,请发帖子。

    p、 你有没有考虑过使用一个DataFormWebPart,它有一个xsl部分,你可以在其中提取你需要的东西?!

    示例:可以将以下语法粘贴到任何aspx/ascx文件中:

    <%@ Register tagprefix="SharePoint" namespace="Microsoft.SharePoint.WebControls" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register tagprefix="WebPartPages" namespace="Microsoft.SharePoint.WebPartPages" assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
    <WebPartPages:DataFormWebPart runat="server" IsIncluded="True" FrameType="None" 
    NoDefaultStyle="TRUE" ViewFlag="0" Title="My List Display" 
     Default="FALSE" ID="dfwp_MyListDisplay"
     DisplayName="My List Display">
     <DataSources>
            <SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true" 
            selectcommand='&lt;View&gt;&lt;Query&gt;&lt;Where&gt;&lt;Eq&gt;&lt;FieldRef Name=&quot;Category&quot;/&gt;&lt;Value Type=&quot;Text&quot;&gt;Header&lt;/Value&gt;&lt;/Eq&gt;&lt;/Where&gt;&lt;/Query&gt;&lt;/View&gt;' id="Utility_x0020_Navigation1"><SelectParameters><WebPartPages:DataFormParameter Name="ListName" ParameterKey="ListName" PropertyName="ParameterValues" DefaultValue="My List Display"/>
            <asp:Parameter Name="ListName" DefaultValue="LIST NAME" />
            <asp:Parameter Name="WebUrl" DefaultValue="<% $SPUrl:~SiteCollection/ %>" />
            </SelectParameters>
            </SharePoint:SPDataSource>
        </DataSources>
        <ParameterBindings>
        <ParameterBinding Name="dvt_apos" Location="Postback;Connection"/>
        <ParameterBinding Name="PageURL" Location="ServerVariable(URL)" DefaultValue=""/>
        <ParameterBinding Name="SiteUrl" Location="ServerVariable(SERVER_NAME)" DefaultValue=""/>
    </ParameterBindings>
        <datafields>@Title,Title;@URL,URL;@Category,Category;@Parent_x0020_item,Parent_x0020_item;@Sort_x0020_Order,Sort Order;@ID,ID;@ContentType,Content Type;@Modified,Modified;@Created,Created;@Author,Created By;@Editor,Modified By;@_UIVersionString,Version;@Attachments,Attachments;@File_x0020_Type,File Type;@FileLeafRef,Name (for use in forms);@FileDirRef,Path;@FSObjType,Item Type;@_HasCopyDestinations,Has Copy Destinations;@_CopySource,Copy Source;@ContentTypeId,Content Type ID;@_ModerationStatus,Approval Status;@_UIVersion,UI Version;@Created_x0020_Date,Created;@FileRef,URL Path;</datafields>
        <xsl>
        YOUR XSLT HERE
        </xsl>
    
    </WebPartPages:DataFormWebPart>
    
        2
  •  1
  •   Johan Leino    16 年前

    以下代码将获取imagefield的url:

    SPListItem item = GetItem();
    string imagefieldhtml = item["HeaderImageUrl"].ToString();
    ImageFieldValue imagefield = new ImageFieldValue(imagefieldhtml);
    
    var url = imagefield.ImageUrl;
    

    所以也许改变你的习惯会对你有帮助,或者至少能帮你。。。?

    <asp:Image ImageUrl="<% (ImageFieldValue ["HeaderImageUrl"]).ImageUrl %>" runat="server"/>
    
        3
  •  0
  •   Francisco Aquino    16 年前

    无法测试它(没有环境),但我很肯定我以前做过。

    试试这些:

    <SharePoint:FieldValue FieldName="HeaderImageUrl" runat="server"/>
    

    <img src="<SharePoint:FieldValue FieldName="HeaderImageUrl" runat="server"/>" />
    

    我会检查回来,在周一做一个实际的测试,如果那些没有工作,你仍然需要帮助。

        4
  •  0
  •   Ben Collins    16 年前