請嘗試以下操作。這不是太糟糕。
對於您的服務器端控件,創建一個屬性,您可以使用任何文本填充。我稱之爲「ExtraStuff」。用一個私有變量來支持它。然後重寫渲染到寫出你額外的東西作爲標記的一部分:
Public Class Textarea
Inherits System.Web.UI.HtmlControls.HtmlTextArea
Private m_sExtraStuff As String = ""
Public Property ExtraStuff As String
Get
Return m_sExtraStuff
End Get
Set(value As String)
m_sExtraStuff = value
End Set
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
writer.Write("<textarea ")
writer.Write(m_sExtraStuff)
writer.Write("></textarea>")
End Sub
End Class
然後,在你的標記,你可以添加你想要將它添加到您所創建的屬性寫出來多餘的東西。你必須確保它的編碼正確,但:
<me:Textarea runat="server" ExtraStuff=":class="{}" :id="something""></me:Textarea>
當此呈現,我認爲它看起來像你想它:
<textarea :class="{}" :id="something"></textarea>
或者:
另一種方法可能更強大的是明確聲明這些特殊屬性,然後以你的格式寫出來。服務器側控制:
Public Class Textarea
Inherits System.Web.UI.HtmlControls.HtmlTextArea
Private m_sSpecialID As String = ""
Private m_sSpecialClass As String = ""
Public Property SpecialID As String
Get
Return m_sSpecialID
End Get
Set(value As String)
m_sSpecialID = value
End Set
End Property
Public Property SpecialClass As String
Get
Return m_sSpecialClass
End Get
Set(value As String)
m_sSpecialClass = value
End Set
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
writer.Write("<textarea :class=""")
writer.Write(m_sSpecialClass)
writer.Write(""" :id=""")
writer.Write(m_sSpecialID)
writer.Write("""></textarea>")
End Sub
End Class
的標記:
<me:Textarea runat="server" SpecialClass="{}" SpecialID="something"></me:Textarea>
的輸出是相同的。
不錯的工作。這絕對比較簡單。 – PerpetualStudent