首先,請有人評論一下微軟爲什麼選擇讓ASP.NET按鈕控件呈現<input type='button' />
標記而不是<button />
標記?我看到了一些問題(特別是在創建沒有文本和圖標的jQuery按鈕時)。ASP.NET按鈕並覆蓋呈現事件
其次,我試圖通過覆蓋Render()
事件來創建我自己的自定義按鈕輸出,並且在試圖瞭解如何改變由此事件提供的輸出方面存在一些困難。
如果我看那個是作爲參數傳遞給Render()
事件HtmlTextWriter
我可以看到它包含一個受保護的財產TagKey = Input {47}
,是不是可以簡單地以某種方式修改該屬性並將其更改爲一個按鈕或者我需要創建一個HtmlTextWriter的新實例並從頭開始填充它?如果是這樣,任何人都可以提供一些指導,說明如何實現這一點,以及是否需要特別考慮以確保我的派生按鈕類在功能上等同於原始(不包括html)?
<Assembly: TagPrefix("MyCompany", "MyCustomButton")>
Public Class MyButton
Inherits Button
Protected Overrides Sub OnPreRender(e As System.EventArgs)
MyBase.OnPreRender(e)
End Sub
Protected Overrides Sub Render(writer As System.Web.UI.HtmlTextWriter)
'writer.TagKey = Input {47}
MyBase.Render(writer)
End Sub
End Class