使用Web Part创建个性化的ASP.NET 2.0应用程序
来源:互联网 发布:linux 最大文件打开数 编辑:程序博客网 时间:2024/05/29 07:29
Web Parts 是Microsoft Visual Studio 2005 中的ASP.NET 2.0的新特性之一,Web Parts是构建类门户风格(Portal-Style)的应用的框架,它继承自SharePoint Portal Server的成熟模式,可以用最小的代码创建更丰富的表现,如用户可以使用拖拽的方式创建页面布局等。与它有关的控件都在System.Web.UI.WebControls.WebParts这个命名空间里。
- WebPartManager控件
WebPartManager是Web Parts的总控中心。它可以管理Web Parts及区域的列表;管理页面状态,当页面状态改变时触发事件;协助Web Parts间的通讯;管理个性化等。
每个页面仅有一个WebPartsManager实例,没有UI。- <asp:WebPartManager ID="WebPartManager1" runat="server" />
WebPartManger.DisplayMode
设置或者获取页面的显示模式
BrowserDisplayMode: “正常的”显示模式,无法编辑(默认)
DesignDisplayMode: 允许拖拽式布局模式
EditDisplayMode: 允许编辑Web Part的外观及行为
CatalogDisplayMode: 允许将Web Part添加到另外的页面上
ConnectDisplayMode: 允许Web Parts之间进行通讯DisplayMode事件
当DisplayMode发生改变时,会触发WebPartManager.DisplayModeChanging事件,其参数WebPartDisplayModeCancelEventArgs获得新的显示模式,并且允许控制者取消这种改变。
当DispalyMode已经发生改变,会触发WebPartManager.DisplayModeChanged事件,其参数WebPartDispalyModeEventArgs得到原来的显示模式。 -
- WebPartZone控件
WebPartZone是在Web Parts页面中定义的区域,它定义每个区域中的Web Part的默认显示样式及布局。
- <asp:WebPartZone ID="WebPartZone1" runat="server">
- <ZoneTemplate>
- </ZoneTemplate>
- </asp:WebPartZone>
Web Part Chrome则是Web Part的标题栏及边框,它是通过WebPartZone来定义其外观和操作的。
在WebPartZone中可以定义各种控件如:Web controls, user controls, custom controls等等。未实现IWebPart接口的控件将封装进GenericWebParts,而且需要增加以下的属性,如Title, Description等。
-
- CatalogZone控件
PageCatalogPart: 显示页面上已经删除的Web Part的列表
DeclarativeCatalogPart: 显示声明在中的Web Part列表
ImportCatalogPart: 允许.WebPart文件中导入的Web Part- <asp:CatalogZone ID="CatalogZone1" runat="server">
- <ZoneTemplate>
- <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
- <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server">
- <WebPartsTemplate>
- <asp:Button ID="Button1" runat="server" Text="Button" />
- </WebPartsTemplate>
- </asp:DeclarativeCatalogPart>
- </ZoneTemplate>
- </asp:CatalogZone>
-
- EditorZone控件
AppearanceEditorPart: 提供修改标题即其它界面相关属性的
UIBehaviorEditorPart: 提供修改行为属性的
UI LayoutEditorPart: 提供修改Web Part的显示状态,区域及区域索引的
UIPropertyGridEditorPart: 提供修改定制属性的UI- <asp:EditorZone ID="EditorZone1" runat="server">
- <ZoneTemplate>
- <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" />
- <asp:BehaviorEditorPart ID="BehaviorEditorPart1" runat="server" />
- <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" />
- <asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
- </ZoneTemplate>
- <asp:EditorZone>
PropertyGridEditorPart允许修改自定义属性的UI,显示标记为[WebBrowsable]的属性。
- int myVar;
- [WebBrowsable]
- public int MyProperty
- {
- get { return myVar; }
- set { myVar = value; }
- }
-
- Web Part通讯
通讯的提供者需要实现方法返回接口,方法特性[ConnectionProvider]
通讯的订阅者需要实现方法接收接口,方法特性[ConnectionConsumer]工作方式:
1.WebPartManager调用[ConnectionProvider]方法
2.WebPartManager从返回参数中获得接口
3.WebPartManager调用[ConnectionConsumer]方法将接口传递给订阅者
4.订阅者用给定的接口也发布者通讯静态通讯方式:
在设计时就把WebPart之间相互通讯的关系在WebPartManager的StaticConnections元素中定义好了,最终用户无法修改。- <asp:WebPartManager ID="WebPartManager1" runat="server">
- <StaticConnections>
- <asp:WebPartConnection ID="myConnection" ConsumerID="MyConsumer" ProviderID="MyProvider" ConsumerConnectionPointID="MyConsumerPoint" ProviderConnectionPointID="MyProviderPoint"/>
- </StaticConnections>
- </asp:WebPartManager>
动态通讯方式:
用ConnectionZone控件提供供Web Part进行通讯的UI。最终用户可以在运行时自定义绑定WebPart之间的通讯。- <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" />
-
- Web Parts个性化
使用Web Part个性化服务可以自动保存相关的Web Part的属性(布局,外观等等),还可以自动保存标记为PersonalizableAttribute的定制属性。
在PersonalizationAdministration类里还提供了一系列有关个性化服务的API, 来供我们调用。
还可以为每个用户提供各自的个性化服务,只需要把属性声明为[Personalizable]就可以了。
也可以将属性声明为[Personalizable (PersonalizationScope.Shared)],这样的话,这个属性就可以被每个用户共享。
Web Parts个性化服务是基于Provider模式的。Beta1的时候提供了两个Provider:
AccessPersonalizationProvider(Access)
AqlPersonalizationProvider(SQL Server)
在Beta2中AccseePersonalizationProvider已经被移除了。
也可以使用自定义Provider增加对其它数据源的支持。如使用SQL Server的Provider需要在Web.config文件中加入声明:
- <webParts>
-
- <personalization defaultProvider="AspNetSqlPersonalizationProvider" />
- </webParts>
-
- 定制Web Parts
任何控件均可以作为Web Parts来运行,但是最好是采用继承自WebPart的控件。这样可以得到更好的应用,如可以控制控件标题及其它与UI相关的属性,控件的AllowClose, AllowZoneChange, AllowMinimize和其它行为属性,可以应用于基于角色的安全特性,也可以增加一些自定义的操作,包括导出Web Part等等。
增加自定义操作:
- public class MyWebPart : WebPart
- {
- public override WebPartVerbCollection Verbs
- {
- get
- {
- EnsureChildControls();
- WebPartVerb verb = new WebPartVerb(new WebPartEventHandler(OnClearResults));
- verb.Text = "Clear Results";
- WebPartVerb[] verbs = new WebPartVerb[] { verb };
- return new WebPartVerbCollection(base.Verbs, verbs);
- }
- }
-
- void OnClearResult(object sender, WebPartEventArgs args){...}
- }
-
- 导出Web Part
WebPart.ExprotMode属性WebPartExportMode.None (默认)
WebPartExportMode.All 允许导出所有数据
WebPartExportMode.NonSensitiveData 允许导出非敏感数据可以在构造函数中对Web Part的导出属性进行定义
- public MyWebPart()
- {
- this.ExportMode = WebPartExportMode.All;
- }
也可以选择某些属性被导出,在属性声明中定义即可。
-
- 使用Web Part创建个性化的ASP.NET 2.0应用程序
- 使用Web Part创建个性化的ASP.NET 2.0应用程序
- ASP.NET 2.0使用Web Part创建应用程序之一
- ASP.NET 2.0使用Web Part创建应用程序之二
- ASP.NET 2.0使用Web Part创建应用程序之二(共二)
- ASP.NET 2.0使用Web Part创建应用程序之一(共二)
- ASP.NET 2.0使用Web Part创建应用程序之一(共二)
- ASP.NET 2.0使用Web Part创建应用程序之二(共二)
- ASP.NET 2.0使用Web Part创建应用程序之二(共二)
- ASP.NET 2.0使用Web Part创建应用程序之二(共二)
- ASP.NET 2.0使用Web Part创建应用程序之二(共二)
- ASP.NET安全问题-- 创建安全的Web应用程序
- ASP.NET安全问题-- 创建安全的Web应用程序
- Asp.Net MVC(创建一个任务列表应用程序) - Part.1
- Asp.Net MVC(创建一个任务列表应用程序) - Part.1
- Learning ASP.NET Part 1 理解Web应用程序(1)
- Learning ASP.NET Part 1 理解Web应用程序(1)
- Learning ASP.NET Part 1 理解Web应用程序(1)
- 今天老婆考研
- 数据库备份与还原(Delphi)
- final关键子上面的注意点
- winbond w90p710中pll的相关设置
- 为什么要学习?
- 使用Web Part创建个性化的ASP.NET 2.0应用程序
- 对象指针和对象引用
- 开发简单的自定义控件
- 女生的心声
- ASP.NET组件编程
- 向量转置的一个巧妙应用
- servlet2.3规范之五——响应
- 纯虚函数(转)
- 普通话的真相:汉语被满人改造的怪胎