扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:朱先忠 来源:51CTO.com 2007年9月2日
关键字:
在此,用户可以选择需要的Web Part控件—该控件提供他们选择的内容或功能,例如收集自各种数据源的RSS回馈数据等。
如果用户点击其中一个特定Web Part上的“Edit”链接(例如图3中的高亮区带),则将出现相应于一个Part特定的编辑器。
该Part特定的编辑器可以包含开发者认为适当的任何用户定制。用户可以从中选择要显示多少项,以及是否显示指定图像等。
当启动“Edit”模式时,Web Part能够围绕着一个Web Part Zone或在两个区带间移动。此外,Web Part还能够被连接到Part间建立的属性绑定。例如,一个Web Part的属性可以用于约束在一个不同的Web Part上显示的数据。
【重要结论】任何ASP.NET控件都能够不经任何修改用作一个Web Part。例如,任何现有的ASP.NET控件、用户控件或定制控件都能够简单地拖放到一个WebPartZone中的一个.ASPX页面中。
注意,这个“拖放”将引起一个对WebPartManager的CreateWebPart()方法的隐式调用—此方法将创建一个GenericWebPart对象实例并且使用你添加到页面中的控件来初始化这个GenericWebPart对象。你可以在设计时刻或运行时刻动态地使用任何标准控件作为一个Web Part。
因此,一旦我们搞清楚了所谓的“Zone架构”,那么,使用Web Part进行Part开发则非常类似于使用Visual Studio进行的任何其它可视化控件开发。而且,创建定制的Web Part与开发定制ASP.NET控件之间存在很大相似之处—创建定制的Web Part需要继承自WebPart类,而创建定制ASP.NET控件需要继承自Control类。
三、创建定制的Web Part
在WebParts控件组出现之前,尽管开发者也可以模拟现在Web Part所具有的大多数功能;但是,开发者必须在后台以编程方式添加大量的属性—例如在一个Web Part中所频繁使用的GenericWebPart属性。尽管这种方法完全可行;但是如今,构建包括这种功能的Web应用程序的开发者却逐渐趋向于先构建全面支持“Web Part”功能的控件—然后再把这些“积木块”应用于Web页面开发。
就象创建标准ASP.NET控件一样,创建定制的Web Part控件也存在两种典型的方法—用户Web Part和定制Web Part。
(一)第一种方法—继承自基类WebPart
我们可以创建一个继承自基类WebPart的定制控件。这种方法的一大优点是:这类控件能够被编译成一个二进制.DLL文件,而且该.DLL可安装到全局程序集缓存(GAC)中。
此时,我们的类可能看起来如下面的列表1所示。
列表1—定制Web Part的典型代码
Imports System.ComponentModel
Imports System.Web.UI
Public Class SampleControl
Inherits System.Web.UI.WebControls.WebParts.WebPart
Private strSubtitle As String
Private _Title As String = "我的WebPart"
Public Sub New()
strSubtitle = "关于" & Now.ToString
Me.TitleIconImageUrl = "mySampleIcon.gif"
End Sub
Private Sub BookDisplay_Init(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Init
MyBase.HelpUrl = "http://www.example.net/myWebPartHelp.htm"
End Sub
Public Overrides Property Title() As String
Get
Return MyBase.Title
End Get
Set(ByVal value As String)
MyBase.Title = _Title
End Set
End Property
Public Overrides ReadOnly Property Subtitle() As String
Get
Return strSubtitle
End Get
End Property
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
MyBase.Render(writer)
End Sub
End Class
在构建编译控件时,.DLL形式使得控件的发布非常容易,而且此控件的应用范围不并局限于定义它们的应用程序;但遗憾的是,以这种方式构建的控件却缺乏可视化的设计体验。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者