2013-05-30 2 views
0

에서 GetMediaUrl과 함께 사용되면 기호를 확인할 수 없습니다. 이미지의 전체 경로를 가져 와서 HTML 이미지 컨트롤의 원본 특성에 할당합니다. 이 이미지는 Repeater Control 내에 배치됩니다. 여기MediaItem이 이미지 원본 atrribute

코드 :

<asp:Repeater runat="server" ID="flashImagesRepeater" > 
<HeaderTemplate> 
    <table> 
     <tr id="bodyImagesTr" > 
      <td> 
</HeaderTemplate> 
<ItemTemplate> 
    <sc:Link ID="flashImageClickURL" runat="server" Field="Click Url" Item="<%# Container.DataItem %>" > 
     <img id="htmlImage" runat="server" field="Image" src="<%# MediaManager.GetMediaUrl(((ImageField)((Item)Container.DataItem).Fields["Image"]).MediaItem) %>" /> 
    </sc:Link> 
</ItemTemplate> 
<FooterTemplate> 
      </td> 
     </tr> 
    </table> 
</FooterTemplate> 

또한 내가 관련 네임 스페이스 상단에 <%@ Import Namespace="Sitecore.Resources.Media" %>을 추가 한 것을 확인했다.

하지만 VS2010 나에게 오류를 제공

내가 잘못 뭐하는 거지 기호 'MediaItem'가

누군가가 나를 안내 할 수 해결할 수 있습니까?

대괄호를 잘못 넣을 수 있습니까?

읽어 주셔서 감사합니다.

+0

MediaItem은 Sitecore.Data.Items 네임 스페이스의 구성원이며 Sitecore.Resources.Media가 아닌 –

+0

이 포함되어 있습니다. <% @ Import 네임 스페이스 = "Sitecore.Data.Items"%> – Shriroop

+0

Sitecore는 어떻습니까? Data.Fields' 네임 스페이스? – OptimizedQuery

답변

1

코드 뒤에 아무 것도 쓰지 않아도됩니다. 웬일인지 당신의 성명 중 하나가 Sitecore 네임 스페이스 중 하나가 아닌 것으로 간주됩니다. 네임 스페이스와 전체 클래스 이름을 사용하는 것을 시도하십시오 : 당신이 항목의 필드에서 이미지를 렌더링하기 위해 노력하고 같은

<img 
    id="htmlImage" 
    runat="server" 
    field="Image" 
    src="<%# Sitecore.Resources.Media.MediaManager.GetMediaUrl(((Sitecore.Data.Fields.ImageField)((Sitecore.Data.Items.Item)Container.DataItem).Fields["Image"]).MediaItem) %>" 
    /> 
+2

코드를 사용할 필요는 없지만 팀원으로 일하는 경우 코드를 제공하면 매우 화났습니다 ;-) –

+0

@RuudvanFalier가 전적으로 동의합니다 :) –

+0

Maras Musielak가이 코드를 사용하려고합니다. 내가 얻는 것. @RuudvanFalier 이미 다른 접근법을 시작했습니다. – Shriroop

1

이 보이는 단지 FieldRender 컨트롤을 사용하고 Sitecore 그것을 처리 할 수 ​​있습니다.

<sc:FieldRenderer runat="server" FieldName="Image" Item="<%# (Item)Container.DataItem %>" /> 
+0

목표 중 하나는 이미지의 전체 경로를 얻는 것입니다. – Shriroop

+1

그런 경우 코드 숨김에서 바인딩하고''을 사용하십시오. BTW, html ''요소에는 Sitecore'field' 속성이 필요하지 않습니다. – jammykam

+0

필자는 필드 속성이 필요 없다는 것을 알고 있습니다. 필자가 필드 렌더러에서 남겨 뒀던 것입니다. :-) 바인딩에 대한 코드에 대한 건배. – Shriroop

1

나는 당신이 겪고있는 문제가 ImageField 올바르게 Sitecore 이미지 필드에 해결되지 않는다는가 있다고 생각합니다. 그 코드를 aspx 페이지에 붙여 넣었고 Field가 ImageField로 캐스팅 될 수 없다는 다른 오류가 발생했습니다. 그래서 ImageCield 변환에 sitecore 네임 스페이스를 추가했는데 원하는대로 정확히 MediaItem을 인텔리 센스했습니다.

그래서 여기에 이미지 태그를 변경하고 작동합니다 : 개인적으로

<img id="htmlImage" runat="server" field="Image" src="<%# MediaManager.GetMediaUrl(((Sitecore.Data.Fields.ImageField)((Item)Container.DataItem).Fields["Image"]).MediaItem) %>" /> 

상점 - 당신은 그냥 백 엔드에서 미디어 URL을 찾으려면 나는 이미지를 렌더링하는 Sitecore 이미지 컨트롤을 사용합니다 코드, 위의 코드가 작동하지만 더 많은 읽을 수있는 쓸 수 있습니다 :)

희망이 도움이!