我首先牺牲了一些构建控件的便利性来设法做到这一点。
您可以创建一个控件库项目,该项目将为您生成一个控件库 DLL。缺点是您必须仅使用代码创建控件。在我的上一个项目中,这很好。在更复杂的控件中,这可能是一个问题。
这是一个例子:
<DefaultProperty("Text"), ToolboxData("<{0}:BreadCrumb runat=server />")> _
Public Class BreadCrumb
WebControl
<Bindable(True)> _
Property Text() As String
'...'
End Property
Protected Overrides Sub RenderContents(output as HtmlTextWriter)
output.write(Text)
End Sub
Private Sub Page_Load(...) Handles MyBase.Load
' Setup your breadcrumb and store the HTML output '
' in the Text property '
End Sub
End Class
您放入该 Text 属性的任何内容都将被渲染。
然后,您在此处放置的任何控件都可以像您使用的任何其他控件一样运行。只需将其导入您的工具箱,制作您的注册参考,然后将其放到 ASP 页面上。