上一篇:为ASP.NET控件添加设计时支持(4) >>
为ASP.NET控件添加设计时支持(7)
正如前文所述,Blog 控件在 Web 窗体编辑器的设计视图中没有任何可视界面。这使得选择页面上的控件很困难,更难以理解控件在运行时的外观。为了解决这个问题,我们可以添加设计器支持,使设计时的 HTML 在外观上接近于运行时的 Blog 控件。请注意,您还可以生成可以完整再现控件运行时输出的设计器,但此操作相当复杂,而且超出了本文的讨论范围。
所有服务器控件设计器都是从类 System.Web.UI.Design.ControlDesigner 派生而来,该类提供了大量方法,您可以重写这些方法为您的控件提供设计时渲染。以下代码简单重写了 GetDesignTimeHtml 方法,返回设计时显示的简单 HTML。请注意,该示例显示了 Blog 控件的整个设计器类,您可以简单地将其添加到现有的 Blog_DT.VB 类文件中。
Public Class BlogDesigner
Inherits ControlDesigner
Public Overrides Function GetDesignTimeHtml() As String
Return "<h1>Blog</h1><hr/><hr/>"
End Function
End Class
要将该设计器绑定到 Blog_DT 类中,我们使用了 Designer 特性,如以下片段所示。请注意,此段代码还添加了一个描述控件功能的 Description 特性。
<Description("简单 Blog 控件。支持显示 " & _
"Web 日志/来自 XML 文件的新条目。"), _
Designer("BlogControl.BlogDesigner"), _
ToolboxData("<{0}:Blog_DT runat=server></{0}:Blog_DT>")> _
Public Class Blog_DT
Inherits Panel
Implements INamingContainer
如您所见,BlogDesigner 类非常简单,但它为控件在 Web 窗体页上的设计时外观添加了大量内容,如图 7 所示。
图 7:添加设计时渲染
列表 4 显示了 Blog 控件的代码,它已经使用特性进行了更新,以启用设计视图和属性浏览器中的控件设计时支持。请注意,该示例添加了多条 using 指令,以导入支持我们使用的特性和设计器类所需要的命名空间。这个新列表还添加了一个用于 Mode 属性值的枚举。
下一篇:为ASP.NET控件添加设计时支持(8) >>
相关文章:
- · ASP.NET Datagrid创建自定义列(1)
- · ASP.NET Datagrid创建自定义列(2)
- · 打造通用ASP.NET数据分页控件(1)
- · 打造通用ASP.NET数据分页控件(2)
- · 打造通用ASP.NET数据分页控件(3)
- · 打造通用ASP.NET数据分页控件(4)
- · 打造通用ASP.NET数据分页控件(5)
- · ASP.NET设计控件净化网站语言(1)
- · ASP.NET设计控件净化网站语言(2)
- · ASP.NET应用中缓存Oracle数据(1)
- · 用好ASP.NET 2.0的URL映射
- · ASP.NET中设计带事件定制控件(3)
- · ASP.NET中设计带事件定制控件(4)
- · ASP.NET中设计带事件定制控件(1)
- · ASP.NET中设计带事件定制控件(2)
- · 在ASP.NET中实现会话状态基础(1)
- · 在ASP.NET中实现会话状态基础(2)
- · 在ASP.NET中实现会话状态基础(3)
- · 在ASP.NET中实现会话状态基础(4)
- · Asp.net入门之吸星大法
- · 在ASP.NET 2.0中实现本地化(1)
- · 在ASP.NET 2.0中实现本地化(2)
- · WebMatrix开发ASP.NET试用手记(1)
- · WebMatrix开发ASP.NET试用手记(2)
- · WebMatrix开发ASP.NET试用手记(3)
- · 表单填写时用回车代替TAB的实现方式
- · ASP使用MYSQL数据库全攻略
- · 友情连接浏览器
- · 方便购买的电子商务站点设计技巧
- · 使用ActiveX控件开发网页常见的问题
- · 基于ACCESS数据库的纯asp论坛制作心得
- · 关于打印页面的一些经验
- · vbscript和javascript互相调用
- · 使用索引服务器 - 增加属性
- · 使用索引服务器 - 创建ASP页面
- · 使用索引服务器- 使用索引服务器的对象
- · 已调试好的asp程序在VB中转换为组件的技巧
- · ASP.NET HTTP运行时组成详解(1)
