Ich schreibe ein benutzerdefiniertes ASP.NET-Composite-Steuerelement (Inherits System.Web.UI.WebControls.CompositeControl).Nothing from Property TagKey()
Standardmäßig wird meine Kontrollmarkierung von Tags umgeben dargestellt. Ich weiß, dass ich die Eigenschaft TagKey überfahren kann, um die Rückgabe als beliebiges Tag festzulegen, das ich von der System.Web.UI.HtmlTextWriterTag-Enumeration erhalten möchte.
Meine Frage: Kann ich meine Steuerung rendern lassen, ohne dass .NET Markup hinzugefügt wird?
UPDATE (3/2/2011) Danke Swati für Ihre Antwort. Ich möchte zeigen, wie ich meine Frage jetzt lösen werde. Ich denke, ich werde einige Ideen von Swati integrieren. Genauer gesagt, AddAttributestoRender(), aber ich frage mich, ob dies erforderlich ist, da CompositeControl kein übergeordnetes Markup-Tag für die Attribute enthält.
Wenn ich ein enthaltenes Markup-Tag nicht möchte, überschreibe ich eine Eigenschaft & zwei Methoden von 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
Wegnahmepunkt: seine Arbeits gegen die Art und Weise Composite arbeiten mag ich für den Hinweis auf AddAttributesToRender großes DANKESCHÖN codeulike zu sagen haben(). Das habe ich vermisst. Dieses Nugget ist sehr hilfreich. Hinweis für andere Autoren - lernen Sie von diesem Beitrag. Die Antwort beinhaltete großartige Hilfe und unterstützende Links! WUNDERBAR hilfreich – MADCookie