我一直在查看HtmlControls和WebControls的Sitecore文档,但没有任何项目有任何有意义的说明或示例代码来说明它们的使用方式或产生的内容。< / p>
我理解如何使用简单的控件,如文本,日期,图像和链接:
<sc:Text runat="server" ID="content" Field="Content" />
是否有资源包含 更高级控件 的示例,例如WebControls.ItemList
或HtmlControls.TreePicker
,以说明如何使用它们以及他们产生的输出?
答案 0 :(得分:2)
SDN有一些代码示例。从本质上讲,WebControl是.NET服务器控件,您可以通过C#编写所有业务逻辑和前端代码。以下是名为“Web控件”的SDN系列:
以下是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
等