如何在Source-View中使用Asp.NET Custom WebControl

时间:2011-10-31 19:22:50

标签: asp.net vb.net

我在我想要使用它的项目中创建了一个继承自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

3 个答案:

答案 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" />