Где можно найти примеры веб-контроля Sitecore? - PullRequest
3 голосов
/ 15 августа 2011

Я просматривал документацию Sitecore для HtmlControls и WebControls , но ни один из элементов не имеет каких-либо значимых описаний или примеров кода, чтобы показать, как они используются или что они производят.

Я понимаю, как использовать простые элементы управления, такие как текст, дата, изображение и ссылка:

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

Существует ли ресурс, содержащий примеры для более продвинутых элементов управления , таких как WebControls.ItemList или HtmlControls.TreePicker, чтобы показать, как они будут использоваться и какой вывод они производят?

1 Ответ

2 голосов
/ 16 августа 2011

SDN имеет несколько примеров кода.По сути, WebControls - это серверные элементы управления .NET, где вы пишете всю бизнес-логику и интерфейсный код через C #.Вот серия на SDN , называемая «Веб-элементы управления»:

  1. Часть 1
  2. Часть 2
  3. Часть 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();

}

РЕДАКТИРОВАТЬ: Чтобы понять, как внутренние встроенные компоненты Sitecoreработа:

Sitecore не собирается предоставлять подробную информацию о том, как создаются их элементы управления.Sitecore не является открытым исходным кодом.Тем не менее, несколько человек из Sitecore говорили мне, что если вам нужно понять, как что-то работает для его расширения, используйте .NET Reflector для декомпиляции ядра (Sitecore.Kernel.dll),Я делал это много раз, чтобы понять, как работают внутренние вещи.В вашем случае вы можете декомпилировать сборку и посмотреть на классы в Sitecore.Web.UI.WebControls и т. Д.

...