Я пишу пользовательский составной элемент управления ASP.NET (наследует System.Web.UI.WebControls.CompositeControl).
По умолчанию мой элемент управления разметки визуализируется в окружении тегов. Я знаю, что могу переопределить свойство TagKey, чтобы установить возвращение в качестве любого тега, который я хочу из перечисления System.Web.UI.HtmlTextWriterTag.
Мой вопрос: могу ли я сделать свой управляющий рендер без добавления разметки .NET?
ОБНОВЛЕНИЕ (02.03.2011) Спасибо Свати за ваш ответ. Я хочу показать, как я решаю свой вопрос сейчас. Я думаю, что я буду интегрировать некоторые идеи Свати. В частности, AddAttributestoRender (), но мне интересно, если это необходимо, так как CompositeControl будет не иметь родительский тег разметки для хранения атрибутов.
Когда мне не нужен содержащий тег разметки, я переопределяю одно свойство и два метода из CompositeControl.
Protected Overrides ReadOnly Property TagKey() As System.Web.UI.HtmlTextWriterTag
Get
' System defaults return as HtmlTextWriterTag.Span
Return HtmlTextWriterTag.Unknown
End Get
End Property
Public Overrides Sub RenderBeginTag(ByVal writer As System.Web.UI.HtmlTextWriter)
If Me.TagKey <> HtmlTextWriterTag.Unknown Then
MyBase.RenderBeginTag(writer)
End If
End Sub
Public Overrides Sub RenderEndTag(ByVal writer As System.Web.UI.HtmlTextWriter)
If Me.TagKey <> HtmlTextWriterTag.Unknown Then
MyBase.RenderBeginTag(writer)
End If
End Sub