[英]Error attempting to override HtmlGenericControl in ASP.NET 4.5
我有以下課程:
Public Class HtmlGenericSelfClosingTag
Inherits HtmlGenericControl
Public Sub New()
MyBase.New()
End Sub
Public Sub New(tag As String)
MyBase.New(tag)
End Sub
Public Shadows Property TagName As String
Get
Return MyBase.TagName
End Get
Set(value As String)
MyBase.TagName = value
End Set
End Property
Public Overrides ReadOnly Property Controls As ControlCollection
Get
Throw New Exception("HtmlGenericSelfClosingTag cannot have child controls.")
End Get
End Property
Public Overrides Property InnerHtml As String
Get
Return String.Empty
End Get
Set(value As String)
Throw New Exception("InnerHtml cannot be set on an HtmlGenericSelfClosingTag")
End Set
End Property
Public Overrides Property InnerText As String
Get
Return String.Empty
End Get
Set(value As String)
Throw New Exception("InnerText cannot be set on an HtmlGenericSelfClosingTag")
End Set
End Property
Public Overrides Sub RenderControl(writer As HtmlTextWriter)
MyBase.Render(writer)
writer.Write(HtmlTextWriter.TagLeftChar & Me.TagName)
Attributes.Render(writer)
writer.Write(HtmlTextWriter.SelfClosingTagEnd)
End Sub
End Class
我已經聲明控件為:
Protected WithEvents MyElement As HtmlGenericSelfClosingTag
我將html標記定義為:
<HtmlGenericSelfClosingTag ID="MyElement" runat="server" />
在頁面渲染期間出現以下錯誤:
基類包含字段“ MyElement”,但其類型(MyClass.HtmlGenericSelfClosingTag)與控件的類型(System.Web.UI.HtmlControls.HtmlGenericControl)不兼容。
我已經搜索了DuckDuckGo(以及擴展名,Google等),以找出我需要重寫的其他內容,以使我的類與HtmlGenericControl類兼容,但沒有骰子。 我還檢查了MSDN文檔,但沒有提及覆蓋要求。 有任何想法嗎?
通過從aspx文件中刪除<HtmlGenericSelfClosingTag ID="MyElement" runat="server" />
標記,然后直接在代碼中直接添加控件,就可以解決該問題,如下所示:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.head.Controls.AddAt(0, BaseElement)
End Sub
為了避免兩次呈現控件,我修改了Render
代碼:
Public Overrides Sub RenderControl(writer As HtmlTextWriter)
writer.Write(HtmlTextWriter.TagLeftChar & Me.TagName)
Attributes.Render(writer)
writer.Write(HtmlTextWriter.SelfClosingTagEnd)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.