2010-02-12 6 views
2

필드에 Title, HeaderImageUrl, Body이 포함 된 목록의 DisplayForm에 사용할 사용자 지정 렌더링 템플릿을 작성하려고합니다.셰어 포인트 렌더링 템플릿 필드에서 속성을 설정하십시오.

<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> 

HeaderImageUrl 필드는 이미지의 URL로 구성되어 있지만 나는 UrlField 컨트롤을 사용하면 링크를 렌더링 : 나는 지금까지 다음 가지고있다.

나는이 같은 필드 값을 잡아 속성에 넣어하는 방법, 그래서 뭔가가있을 수 있습니다 생각

: 이런 종류의 일을 할 수없는 경우, 다른 제어에

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

URL에서 이미지를 렌더링하는 Microsoft.SharePoint.WebControls?

답변

0

내 문제는 단순히 링크가 아닌 이미지로 렌더링되도록 이미지 열을 설정하지 않았 음을 나타냅니다. 내장 Microsoft.SharePoint.UrlField 컨트롤은 정상적으로 작동했습니다.

2

이미지로 표시 될 URL 필드를 호출 한 모든 예제는 C# 코드를 통해 수행되었습니다. 웹 파트 비트의 대부분이 C# 코드를 사용하지 않고 작성 될 수 있기 때문에 꽤 성가시다. 여기서 도로를 내려야 할 수도 있습니다 ... 아마도 사용자 지정 필드 컨트롤이나 사용자 정의 컨트롤 일 수 있습니다.

URL 값이 (혼동)이기 때문에 코드가 위의 HeaderImageUrl의 값을 얻었다하더라도, 그것은 작동하지 않을 :의

[실제 URL 지정] [일부 이상한 분리 문자 문자열] [설명 필드 (일반적으로 실제 URL은 사용자가 지정하지 않은 경우 다시 입력합니다.)]

문자열을 te delimeter 값으로 분할하고 [0] (첫 번째)을 이미지에 삽입하는 데 사용해야합니다 url.

C# 코드를 작성하지 않고이를 수행 할 수있는 방법을 찾으면 게시하십시오.

p.s. xsl 섹션을 가지고있는 DataFormWebPart를 사용해 보았습니까? 필요한 것을 추출 할 수 있습니다.

예 :

<%@ 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> 
+0

DataFormWebPart를 사용하고 싶지 않은 이유 중 하나는 SharePoint Designer가 필요하기 때문입니다. 배포 할 모든 것을 솔루션에 포함하고 싶습니다. –

+0

안녕하세요, DataFormWebPart를 만들려면 SharePoint Designer가 필요하지 않습니다. 배치 할 페이지 레이아웃을 포함하여 ascx 또는 aspx 파일에 DataFormWebPart 구문을 추가하기 만하면됩니다. 내 게시물에 대한 수정 사항을 확인하십시오. – Zeb

0

수 없습니다가 기압 (어떤 환경)를 테스트하지 않으려면하지만 난 내가 전에 이런 짓을 확신합니다 : 당신은 어떤 영문/ASCX 파일에 다음 구문을 부착 할 수 있습니다.

다음을 시도해보십시오

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

또는 : 그 문제가 해결되지 않았고 여전히 도움이 필요하면 내가 월요일하여이 일에 다시 확인하고 실제 시험을 다하겠습니다

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

. 그래서 어쩌면

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

var url = imagefield.ImageUrl; 

당신을 도울 것입니다 이런 식으로 뭔가로를 변경, 또는 어쩌면이어야 밖으로 당신을 도울 수 ... :

1

다음 코드는 당신에게 imagefield의 URL을받을 수 있습니까?

<asp:Image ImageUrl="<% (ImageFieldValue ["HeaderImageUrl"]).ImageUrl %>" runat="server"/>