2014-03-25 3 views
0

herehere과 비슷한 질문이 몇 개 있지만 문제를 해결할 수 없습니다.Sitecore의 미디어 URL 설정

Sitecore 6.4.1에서 이미지를 다운로드 할 수있는 '다운로드 계획'링크가 있어야합니다. 성공적으로 이미지를 배경 등으로 설정했지만 href로 링크하는 것은 어렵다는 것을 입증했습니다. sublayout로 설정되어 내 ASCX 컨트롤에서

는 프런트 엔드 코드는 다음과 직기 :

<a class="btn btn-default" id="download_plans" runat="server" ClientIDMode="Static"> 
    Download Plans 
</a> 

그리고 내 코드는 숨김이있다 : 다른에서

private void Page_Load(object sender, EventArgs e) 
{ 
    if (((Sitecore.Data.Fields.ImageField)Sitecore.Context.Item.Fields["Floor Plan Image"]).MediaItem != null) 
    { 
     var url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(((Sitecore.Data.Fields.ImageField)Sitecore.Context.Item.Fields["Floor Plan Image"]).MediaItem)); 
     download_plans.HRef = url; 
    } 
} 

을 내 컨트롤 나는 HRef 속성을 추가하는 대신 아래 코드를 사용하여 스타일을 추가했습니다. 요소를 검색 할 때 사용하려면이 올바른 문자열 (그것은 매우 일반적인 내 다른 컨트롤에 "이미지"입니다) -이 Sitecore에서, 필드가 "평면도 이미지"라고

download_plans.Attributes.Add("style", string.Format("background-position:right bottom; background-image:url(\"{0}\"); background-repeat:no-repeat; background-size:contain", url)); 

잘 작동 ? 현재 요소에 아무 것도 추가되지 않습니다.

제안 사항?

+0

코드를 디버그하고 조건이 충족되는지 확인하려고 했습니까? 그리고'HRef '설정을위한 코드는 전혀 실행되지 않습니까? ' "평면도 이미지"는 필드 이름에 대한 올바른 문자열입니다. 'Name '('Display Name'이 아님)을 꼭 사용하십시오. –

+0

좋은 아이디어 - CS를 내 IIS 프로세스에 연결했고 조건이 충족되었습니다. HRef 필드가 download_plans 요소에 설정되어 있지만 브라우저에 아직 표시되지 않습니다. –

+1

컨트롤을 ''로 변경하고 대신'NavigateUrl'을 설정하십시오. – jammykam

답변

0

다른 컨트롤에 동일한 코드 스 니펫이 있다고 가정 해보십시오. 그것이 작동하지 않는다면 내가 생각할 수있는 유일한 진짜 이유가 있습니다. 다른 컨트롤이 다른 템플릿 유형의 페이지 (평면도 이미지를 포함하지 않는 페이지)에서 호스팅된다는 것입니다.

컨트롤이 예상 한 페이지 템플릿에서 호스팅되는지 확인하십시오.

이상적으로는 구성 요소에 Sitecore.Context.Item을 사용하지 않는 것이 좋습니다. 이런 이유로 그리고 더 많은 것.

0

요소 클래스 "btn btn-default"를 확인하십시오. 일부 속성이있는 경우 배경 속성이 CSS에 적용되지 않습니다. 먼저 속성을 제거한 다음 시도하십시오.

클래스 속성을 제거하여 시도해 볼 수있는 또 다른 방법은 작동하는 경우 CSS의 일부 문제입니다.

작동하지 않는지 알려 주시면 몇 가지 유용한 아이디어를 알려 드리겠습니다.