ASP.NET 2.0使用Web Part创建应用程序之二(共二)


1.Web Part 通讯
Web Parts可以相互通讯,提供者发布接口,订阅者通过接口获得数据,WebPartManager 管理通讯,从提供者获得接口,向订阅者发布接口,通讯可以是静态的,也可以是动态的,ConnectionsZone 提供后期绑定的UI
通讯提供者
实现方法返回接口,方法特性 [ConnectionProvider]
None.gif [ConnectionProvider ( " Zip Code " " ZipCodeProvider " )]
None.gif
public  IZipCode GetZipCodeInterface ()
ExpandedBlockStart.gif
{
InBlock.gif    
return this// Assumes control implements IZipCode
ExpandedBlockEnd.gif
}

None.gif
None.gif
//  IZipCode.GetZipCode implementation
None.gif
public   string  GetZipCode ()
ExpandedBlockStart.gif
{
InBlock.gif    
return _zip;
ExpandedBlockEnd.gif}
通讯订阅者
实现方法接收接口参数,方法特性 [ConnectionConsumer]
None.gif [ConnectionConsumer ( " Zip Code " " ZipCodeConsumer " )]
None.gif
public   void  GetIZipCodeInterface (IZipCode provider)
ExpandedBlockStart.gif
{
InBlock.gif    
string zip = provider.GetZipCode (); // Get zip code from provider
InBlock.gif
      dot.gif
ExpandedBlockEnd.gif}
静态通讯方式
在 WebPartManager的 <StaticConnections> 元素中定义,最终用户无法修改
None.gif < asp:Connection > 的实例
None.gif
< asp:WebPartManager  ID ="WebPartManager1"  Runat ="server" >
None.gif  
< StaticConnections >
None.gif    
< asp:Connection  ID ="ZipCodeConnection"  Runat ="server"
None.gif      ProviderID
="Weather1"  ProviderConnectionPointID ="ZipCodeProvider"
None.gif      ConsumerID
="News1"  ConsumerConnectionPointID ="ZipCodeConsumer"   />
None.gif  
</ StaticConnections >
None.gif
</ asp:WebPartManager >
2.ConnectionsZone 控件
提供供Web Part进行通讯的UI,最终用户,而不是开发人员创建通讯关系
None.gif < asp:ConnectionsZone  ID ="ConnectionsZone1"
None.gif  Runat
="server"   />
3.Web Parts 个性化
Web Parts 个性化服务
自动保存相关Web Part的属性 (布局, 外观等等),自动保存标记为 PersonalizableAttribute的定制属性
PersonalizationAdministration 类提供个性化服务的API,Provider-based for flexible data storage
Per-User 个性化,[Personalizable] 为每位用户保存定制属性,string _stocks; // e.g., "MSFT,INTC,AMZN"
None.gif [WebBrowsable]
None.gif[Personalizable]
None.gif
public   string  Stocks
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif    
get return _stocks; }
ExpandedSubBlockStart.gif    
set { _stocks =  value; }
ExpandedBlockEnd.gif}

None.gif
None.gifShared Personalization
None.gif[Personalizable (PersonalizationScope.
- Shared)] persists properties on shared basis
None.gif
string  _stocks;  //  e.g., "MSFT,INTC,AMZN"
None.gif

None.gif[WebBrowsable]
None.gif[Personalizable (PersonalizationScope.Shared)]
None.gif
public   string  Stocks
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif    
get return _stocks; }
ExpandedSubBlockStart.gif    
set { _stocks =  value; }
ExpandedBlockEnd.gif}

None.gif
个性化服务是基于Provider模式
None.gif 使用 SQL Server Provider
None.gif
< configuration >
None.gif  
< system .web >
None.gif    
< webParts >
None.gif      
< personalization  defaultProvider ="AspNetSqlPersonalizationProvider"   />
None.gif    
</ webParts >
None.gif  
</ system.web >
None.gif
</ configuration >
4 定制Web Parts
增加自定义操作
None.gif public   class  MyWebPart : WebPart
ExpandedBlockStart.gif
{
InBlock.gif    
public override WebPartVerbCollection Verbs
ExpandedSubBlockStart.gif    
{
ExpandedSubBlockStart.gif        
get {
InBlock.gif            EnsureChildControls ();
InBlock.gif            WebPartVerb verb 
=
InBlock.gif                
new WebPartVerb (new WebPartEventHandler (OnClearResults));
InBlock.gif            verb.Text 
= "Clear Results";
ExpandedSubBlockStart.gif            WebPartVerb[] verbs 
= new WebPartVerb[] { verb };
InBlock.gif            
return new WebPartVerbCollection (base.Verbs, verbs);
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
ExpandedSubBlockStart.gif    
void OnClearResults (object sender, WebPartEventArgs args) dot.gif }
InBlock.gif  dot.gif
ExpandedBlockEnd.gif}
5.导出Web Part
WebPart.ExportMode属性,WebPartExportMode.None (默认),WebPartExportMode.All
WebPartExportMode.NonSensitiveData,All” 及 “NonSensitiveData” 增加导出操作以便Web Part可以被导出
仅[Personalizable] 属性,PersonalizableAttribute.IsSensitive识别 “sensitive” 属性
导出所有属性
None.gif public   class  MyWebPart : WebPart
ExpandedBlockStart.gif
{
InBlock.gif    
public MyWebPart ()
ExpandedSubBlockStart.gif    
{
InBlock.gif        ExportMode 
= WebPartExportMode.All;
ExpandedSubBlockEnd.gif    }

InBlock.gif  dot.gif
ExpandedBlockEnd.gif}
导出所选择的属性
None.gif public   class  MyWebPart : WebPart
ExpandedBlockStart.gif
{
InBlock.gif    
public MyWebPart ()
ExpandedSubBlockStart.gif    
{
InBlock.gif        ExportMode 
= WebPartExportMode.NonSensitiveData;
ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
// This property will be exported
InBlock.gif
    [Personalizable (PersonalizationScope.User, false)]
InBlock.gif    
public string ZipCode
ExpandedSubBlockStart.gif    
dot.gif }
InBlock.gif
InBlock.gif    
// This one will not
InBlock.gif
    [Personalizable (PersonalizationScope.User, true)]
InBlock.gif    
public string SocialSecurityNumber
ExpandedSubBlockStart.gif    
dot.gif }
InBlock.gif  dot.gif
ExpandedBlockEnd.gif}



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/11/22/282367.html,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值