SDN有一些代碼示例。實際上,WebControls是.NET服務器控件,您可以通過C#編寫所有業務邏輯和前端代碼。下面是對SDN稱爲 「Web控件」 系列:
- 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();
}
編輯:要了解如何內部建設t-in Sitecore組件工作:
Sitecore不會提供如何構建其控件的詳細信息。 Sitecore不是開源的。話雖如此,Sitecore的人多次告訴我,如果您需要了解某些工作如何擴展它,請使用.NET Reflector來解編內核(Sitecore.Kernel.dll
)。我花了很多時間來弄清楚內部事物是如何工作的。在你的情況下,你可以反編譯程序集,並看看Sitecore.Web.UI.WebControls
等下的類。
我沒有製造我自己的控件的問題。我有一個問題,發現* Sitecore的*內置控件實際上**做**。我想我應該更加明確,我想要更多參與控制的例子。 – zzzzBov
我已經更新了我的回覆。 TLDR:使用.NET Reflector去編譯內核DLL。 –