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

asp.net|web|程序|创建

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

// IZipCode.GetZipCode implementation
public string GetZipCode ()
{
    return _zip;
}通讯订阅者
实现方法接收接口参数,方法特性 [ConnectionConsumer]
[ConnectionConsumer ("Zip Code", "ZipCodeConsumer")]
public void GetIZipCodeInterface (IZipCode provider)
{
    string zip = provider.GetZipCode (); // Get zip code from provider
     
}静态通讯方式
在 WebPartManager的 <StaticConnections> 元素中定义,最终用户无法修改
<asp:Connection>的实例
<asp:WebPartManager ID="WebPartManager1" Runat="server">
  <StaticConnections>
    <asp:Connection ID="ZipCodeConnection" Runat="server"
      ProviderID="Weather1" ProviderConnectionPointID="ZipCodeProvider"
      ConsumerID="News1" ConsumerConnectionPointID="ZipCodeConsumer" />
  </StaticConnections>
</asp:WebPartManager>2.ConnectionsZone 控件
提供供Web Part进行通讯的UI,最终用户,而不是开发人员创建通讯关系
<asp:ConnectionsZone ID="ConnectionsZone1"
  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"
[WebBrowsable]
[Personalizable]
public string Stocks
{
    get { return _stocks; }
    set { _stocks =  value; }
}

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

[WebBrowsable]
[Personalizable (PersonalizationScope.Shared)]
public string Stocks
{
    get { return _stocks; }
    set { _stocks =  value; }
}
个性化服务是基于Provider模式
使用 SQL Server Provider
<configuration>
  <system.web>
    <webParts>
      <personalization defaultProvider="AspNetSqlPersonalizationProvider" />
    </webParts>
  </system.web>
</configuration>4 定制Web Parts
增加自定义操作
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 OnClearResults (object sender, WebPartEventArgs args) {  }
 
}5.导出Web Part
WebPart.ExportMode属性,WebPartExportMode.None (默认),WebPartExportMode.All
WebPartExportMode.NonSensitiveData,All” 及 “NonSensitiveData” 增加导出操作以便Web Part可以被导出
仅[Personalizable] 属性,PersonalizableAttribute.IsSensitive识别 “sensitive” 属性
导出所有属性
public class MyWebPart : WebPart
{
    public MyWebPart ()
    {
        ExportMode = WebPartExportMode.All;
    }
 
}导出所选择的属性 public class MyWebPart : WebPart
{
    public MyWebPart ()
    {
        ExportMode = WebPartExportMode.NonSensitiveData;
    }

    // This property will be exported
    [Personalizable (PersonalizationScope.User, false)]
    public string ZipCode
    {  }

    // This one will not
    [Personalizable (PersonalizationScope.User, true)]
    public string SocialSecurityNumber
    {  }
 
}

 

时间: 2024-10-05 01:33:03

ASP.NET 2.0使用Web Part创建应用程序之二(共二)的相关文章

ASP.NET 2.0的Web Part Framework

asp.net|web 最近ASP.NET 2.0实在没有什么新消息,也没什么惊人动态,在没有新闻的情况下,看来祭司只好自己创造新闻啰,今天要谈的是ASP.NET 2.0的Web Part Framework. Web Part Framework就是指Web组件,为什么要谈它呢?主要是有个小故事,有个读者问我他想用Web Part,但可不可以不要用SQL Server资料库?!他问的当时我小楞了一下,因为ASP.NET 2.0的东西太多了,多到我也不可能记住所有的细节,于是我调出第二十章Web

Scott Mitchell的ASP.NET 2.0数据教程之一 创建一个数据访问层

返回"ASP.NET 2.0数据教程目录" 导言 作为web开发人员,我们的生活围绕着数据操作.我们建立数据库 来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据.本文是研 究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇 .我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的 DataSet的数据访问层(DAL),一个实施用户定义的业务规则的业务逻辑层(BLL), 以及一个由共享页面布局的ASP.NET网页组成的表现层.在打

ASP.NET 2.0: 使用自定义的配置文件提供程序管理Web用户

本文讨论: ASP.NET 2.0 配置文件提供程序 构建一个自定义提供程序 身份验证 和授权 本文使用了以下技术: ASP.NET, XML 借助 ASP.NET 2.0,您无需编写代码即 可向自己的网站添加身份验证.授权和各种配置文件.与以往相比,这显然是一个巨大的进步.与 ASP.NET 2.0 中的多数新功能一样,身份验证.授权和配置文件都有自己的内置提供程序.您可以将提供 程序看作是包含有完成某项特殊任务所用方法的模块.这些提供程序非常灵活,您可以通过指定属性对其 进行自定义.这些指定

ASP.NET 2.0中WEB应用程序的部署

在我们建立完一个WEB应用程序后,我们就要考虑如何进行部署和发布.一般 情况下,尽可能将安装简单化,以使用户有非常好的用户体验.但有的情况下, 可能对安装程序的要求比较高,比如有时要将一些安装配置信息写到注册表中去 .而对于一个WEB应用程序,该如何安装部署呢?这和安装部署一个普通的 WINFORM下的应用程序有些不同.以往,对于WEB应用程序的安装部署总是十分困 难的,但自从ASP.NET 1.1起,直到现在出现的ASP.NET 2.0,安装部署WEB应用程 序将变得十分简单方便.本文将着重介

ASP.NET 2.0 Club Web Site Starter Kit 补丁

asp.net|web ASP.NET2.0  Club Web Site Starter Kit 具有一个很大的缺陷:不支持中文. 这里给出两种解决方案供大家参考 方法一: 1)由于大家大部分都是用SQL SERVER2005 EXPRESS开发的,所以在建立好Club需要的数据表后,将每一个表的varchar类型更改为nvarchar. 2)将app_code目录下的DataSet.xsd文件里的AnsiString全部替换为String. 就可以解决这个问题. 我花费了大约10分钟找到并修

探讨ASP.NET 2.0的Web控件改进之概述

asp.net|web|控件 一. 引言 到目前为止,你可能已经了解了大量的ASP.NET 2.0新特征-母版页面,主题,提供者,等等--所有这样内容都相当精彩:但是,你是否了解到有关定制Web控件开发方面的重大变化?这正是我在本文中所想讨论的.如果你已经从事于控件开发,那么,我想本文所描述的ASP.NET 2.0中的新的改进特征会立即应用于你的控件开发中. 首先应该注意的是,你以前使用ASP.NET 1.1(或1.0)开发的所有Web控件在2.0版本下将继续良好运行-微软并没有破坏你的现有代码

ASP.NET 2.0: 执行Web标准以便更加易于访问

本文讨论: 采用 Web 标准 CSS 控件适配器 ASP.NET 2.0 主题和母版页 本文使 用了以下技术: ASP.NET 2.0 我不得不承认我一开始并不觉得 Web 标准很重要.和大多数人一样 ,我也是在 Web 浏览器刚出现时就开始编写网页了.那时,我认为闭合每个 HTML 段落标记会降低我的工作效 率,而且会不必要地占用用户那宝贵的 28K 的部分带宽.所以,我不闭合它.只要浏览器能通过,我也不在乎 . 但是,自那时起我开始认识到 Web 标准对未来 Web 和基于 Web 的软件

ASP.NET 2.0数据操作之创建业务逻辑层

导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是授权,比如说只有那些具有特殊

ASP.NET 2.0实现多语言本地化应用程序

1.设置当前文化 页面类有两个影响本地化的重要属性均在< % Page % >指令设置: 1).UICulture 此属性用于指定载入到页面的资源文件,资源文件可以包含 页面文本内容的特定语言的翻译版本.其属性值可为中立文化也可为特定文化(下 面有介绍) 2).Culture 此属性决定了诸如日期.数值.货币单位等的格式与排序. 此属性值只能为特定文化. 以上UICulture和Culture属性都接受标准的文化名称作为它们的值.(可在 http://www.IETF.org查看标准文化名称)