我在我想要使用它的项目中创建了一个继承自CustomLabel.vb中的Label WebControl的Label控件。我想在源视图中使用以下代码:
<custom:SettingLabel ID="lblHelloWorld" runat="server"/>
如何不创建WebContolLibrary
并将其用作参考?
Namespace InternetLending.Controls
Public Class SettingLabel
Inherits Label
Protected msDefaultText As String
Protected moConfigXML As New ConfigXMLParser()
Public Overridable Property DefaultText() As String
Get
Return Me.msDefaultText
End Get
Set(ByVal vsValue As String)
Me.msDefaultText = vsValue
End Set
End Property
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
If Not String.IsNullOrEmpty(Me.moConfigXML.GetLabelTextByID(Me.ID)) Then
Me.Text = Me.moConfigXML.GetLabelTextByID(Me.ID)
Else
Me.Text = Me.DefaultText
End If
End Sub
End Class
End Namespace
答案 0 :(得分:2)
您只需将其添加到页面顶部即可。您不需要创建单独的库或任何其他库。
<%@ Register Assembly="Assembly" Namespace="Assembly.Controls" TagPrefix="custom" %>
答案 1 :(得分:1)
这里的问题是您没有考虑默认命名空间。
尝试使用以下指令:
<%@ Register Assembly="InternetLending" Namespace="InternetLending.InternetLending.Controls" TagPrefix="custom" %>
或更改SettingLabel
控件的命名空间,如下所示:
Namespace Controls
Public Class SettingLabel
Inherits Label
然后使用以下指令:
<%@ Register Assembly="InternetLending" Namespace="InternetLending.Controls" TagPrefix="custom" %>
有关详细信息,请参阅:Managing Namespaces in VB.Net。
答案 2 :(得分:0)
我认为你可以在web.config或page指令中注册程序集,即使它在同一个项目中。
<add tagPrefix="MyControls" namespace="MyProgram.Controls.MyControl" assembly="MyProgram.Controls.MyControl" tagName="MyControl" />