2011-08-15 2 views
2

나는 HtmlControlsWebControls에 대한 Sitecore 문서를 살펴 봤지만 어떤 항목에도 의미있는 설명이나 예제 코드가있어 사용 방법이나 제작 방법을 보여주지 못했습니다. 방법을 보여 고급 컨트롤 WebControls.ItemList 같은 또는 HtmlControls.TreePicker에 대한 예제를 포함하는 자원이 있는가Sitecore 웹 컨트롤 예제는 어디에서 찾을 수 있습니까?

<sc:Text runat="server" ID="content" Field="Content" /> 

:

나는 텍스트, 날짜, 이미지 및 링크와 같은 간단한 컨트롤을 사용하는 방법을 이해 그들은 사용하게 될 것이고 그들이 산출하는 결과물은 무엇일까요?

답변

2

SDN에는 몇 가지 코드 예제가 있습니다. 기본적으로 WebControls는 C#을 통해 모든 비즈니스 로직과 프런트 엔드 코드를 작성하는 .NET 서버 컨트롤입니다. 여기

  1. Part 1
  2. Part 2
  3. Part 3

샘플 TextControl 것 :

protected override void DoRender(HtmlTextWriter output) { 

    if (ClassAttribute.Length > 0) { 
    output.AddAttribute(HtmlTextWriterAttribute.Class, ClassAttribute); 
    } 

    if (StyleAttribute.Length > 0) { 
    output.AddAttribute(HtmlTextWriterAttribute.Style, StyleAttribute); 
    } 

    output.RenderBeginTag(HtmlTextWriterTag.Div); 

    string val = string.Empty; 

    if(_text.Length == 0) { 
    val = GetFieldValue(_textField); 
    } else { 
    val = _text; 
    } 

    output.AddAttribute(HtmlTextWriterAttribute.Class, TextClass); 
    output.AddAttribute(HtmlTextWriterAttribute.Style, TextStyle); 
    output.RenderBeginTag(HtmlTextWriterTag.Div); 
    output.Write(val); 
    output.RenderEndTag(); 
    output.RenderEndTag(); 

} 

편집 : 여기에 SDN 소위 "웹 컨트롤"에 대한 일련의 이해하기 내부 구축 방법 t-in Sitecore 구성 요소 작동 :

Sitecore는 컨트롤 구성 방법에 대한 세부 정보를 제공하지 않습니다. Sitecore는 오픈 소스가 아닙니다. 즉, 나는 Sitecore의 사람들이 뭔가를 확장하는 방법을 이해해야 할 필요가 있다면 .NET Reflector을 사용하여 커널을 다시 컴파일한다고 (Sitecore.Kernel.dll) 여러 번 들었습니다. 나는 내부 일이 어떻게 작동 하는지를 알기 위해 여러 번이 작업을 해왔습니다. 귀하의 경우에는 어셈블리를 디 컴파일하여 Sitecore.Web.UI.WebControls 등의 클래스를 살펴볼 수 있습니다.

+0

나만의 컨트롤을 만드는 데 문제가 없습니다. Sitecore의 * 내장 컨트롤이 ** 실제로 ** 수행하는 작업을 파악하는 데 문제가 있습니다. 좀 더 명확히해야만했던 것 같아요, 나는 더 복잡한 통제의 예를 원합니다. – zzzzBov

+1

내 답변을 업데이트했습니다. TLDR : .NET Reflector를 사용하여 커널 DLL을 디 컴파일하십시오. –

관련 문제