具有可以保存服务器控件的文本属性的Web控件

时间:2012-09-04 19:11:35

标签: asp.net vb.net

我正在设计一个控件,我需要它继承一个具有可以包含服务器控件的text属性的类。

这是一个例子来说明我想要解释的内容

<asp:myCustomControl id="myCustomControl1" runat="server" someProperty="something">
    <asp:hyperlink id="myCustomControl1Hyperlink" runat="server" navigateUrl="someUrl">
        Click here
    </asp:hyperlink>
</asp:myCustomControl>


Protected Overrides Sub Render( _
    ByVal writer As HtmlTextWriter)

    If Not String.IsNullOrEmpty(Text) Then
        writer.Write( _
            "some html" + _
            Text + _
            "some other html"
        )
    End If

End Sub

这样做的目的是我可以决定如何在我的控件的render函数中呈现控件,同时显示我控件中的Text属性。

我的第一次尝试是从literal继承,因为这样可以让我在内部编写<a>标记而不会出现任何问题。但是,最近我不得不用<a>标签更改<asp:hyperlink>标签,它会引发'{0}' does not allow child controls.例外。

所以我尝试更改它,因此它继承自panel,但这一次,在我的渲染函数中,我不能使用Text属性,也不能使用Me.Text,因为它们都没有不存在。

1 个答案:

答案 0 :(得分:0)

您继承自Control Class,并解决所有问题