SDN에는 몇 가지 코드 예제가 있습니다. 기본적으로 WebControls는 C#을 통해 모든 비즈니스 로직과 프런트 엔드 코드를 작성하는 .NET 서버 컨트롤입니다. 여기
- Part 1
- Part 2
- 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
등의 클래스를 살펴볼 수 있습니다.
나만의 컨트롤을 만드는 데 문제가 없습니다. Sitecore의 * 내장 컨트롤이 ** 실제로 ** 수행하는 작업을 파악하는 데 문제가 있습니다. 좀 더 명확히해야만했던 것 같아요, 나는 더 복잡한 통제의 예를 원합니다. – zzzzBov
내 답변을 업데이트했습니다. TLDR : .NET Reflector를 사용하여 커널 DLL을 디 컴파일하십시오. –