2013-05-09 1 views
1

여러 페이지에서 사용할 수있는 하위 레이아웃이 있습니다. 하위 레이아웃의 맨 위에 제목 표시 줄을 표시해야하고 Title 필드가 들어있는 매개 변수 템플릿을 만들었습니다. 이 값을 편집 할 수 있으려면이 제목을 sc:Text 또는 sc:FieldRenderer 컨트롤에 표시하고 싶습니다. 어떻게해야합니까?Sitecore 서브 레이아웃에서 매개 변수 템플릿의 일부 필드 내용을 렌더링하고 페이지를 편집 할 수있게 만드는 방법은 무엇입니까?

ASCX에

답변

4

당신은 코드 숨김에서 <%= Title %>

을 가질 수 있습니다 당신은 다음과 같이 선언 할 수 있습니다

public string Title { get; set; } 

과를 Page_Load에서을 :

string rawParameters = Attributes["sc_parameters"]; 
NameValueCollection parameters = Sitecore.Web.WebUtil.ParseUrlParameters(rawParameters); 
Title = parameters["Title"]; 

물론 당신이있어 가정 ascx 파일에서 코드를 수행합니다.

분명히 이것은 페이지 편집기에서 편집 할 수 없지만.

This

는 읽을 수있는 좋은 기사입니다이

[편집]
내가 나 자신을 사용하고 코드를 추가 할 거라고 생각 :

을 : 내가 않는 helperclass이

public ParamHelper(System.Web.UI.UserControl control) 
{ 
    _sublayout = control.Parent as Sitecore.Web.UI.WebControls.Sublayout; 

    if (_sublayout != null) 
    { 
     _params = Sitecore.Web.WebUtil.ParseUrlParameters(_sublayout.Parameters); 
    } 
} 

그리고 난 다음 내에 Params 얻을 수 있습니다 :

public string GetParam(string key) 
{ 
    string result = _params[key.Trim().ToLower()]; 

    if (string.IsNullOrEmpty(result)) 
    { 
     result = string.Empty; 
    } 

    return (System.Web.HttpUtility.UrlDecode(result)); 
} 
+0

페이지 편집기에서 편집 할 수 있습니까? –

+0

흠 ... 솔직히 말해서이 방법인지 확실하지 않습니다. Sitecore Sublayout에서 작업하는 경우 ParseUrlParameters (this.Parameters) 만 사용할 수 있습니다. UserControl에서 작업하는 경우 먼저 Sublayout으로 변환해야합니다. 내가 사용하는 코드는 – Trayek

+0

태그를 사용하려고하는 Sitecore 하위 레이아웃과 연결된 ascx 파일을 가지고 있으며 하위 레이아웃에서 사용하는 매개 변수 템플릿의 Title 필드에 연결합니다. 지금까지 내가 생각할 수있는 가능한 구문을 시도했는데 어디에도 없습니다. –

2

템플릿의 기본 필드가 아닌 왜 하위 레이아웃 매개 변수 여야하는 이유는 무엇입니까? 템플릿 상속을 사용하면 하위 레이아웃을 사용할 템플릿 만 사용하거나 많이 사용하거나 사이트의 임의 페이지에서 템플릿을 추가하여 기본 템플릿에 추가 할 수 있습니다. sublayout가 종속성을 추가하여 항목을 사용하지 않을 경우에는 컨텐츠 편집기에서 필드를 숨길 수 있습니다 :

Dynamic content editor templates using Rendering Dependencies

당신은 다음 sc:text 또는 정상에 따라 sc:fieldrenderer를 사용할 수 있습니다.

+0

또는 일반 필드가 작동하지 않으면 사전 항목일까요? – Trayek

+1

페이지 유형별로 몇 개의 템플릿 (집, 제품, 원주, 두 개의 열 등)이 있다고 가정 해보십시오 ... 어떤 하위 페이지에서 편집기가이 "위젯을 추가 할 것인지 알고 있어야합니다. "(내 하위 레이아웃)? 그가 두 개의 서로 다른 자리 표시 자의 동일한 페이지에 하위 레이아웃의 인스턴스를 두 개 이상 추가하면 어떻게됩니까? –

+0

기본 템플릿에 추가하는 것처럼 여러 템플릿을 추가해도 문제가되지 않습니다. 그러나 여러 인스턴스에 대한 공정한 점은 이것이 더 큰 모듈이라고 생각했습니다. – jammykam