引入ASP.NET 2.0 Web部件连接

当您开始使用 Microsoft .NET Framework 2.0 和 ASP.NET 时,您会发现新 的 Web 部件基础结构将一些非常强大的功能添加到了基础平台中。对于本文, 我假设您已经对 Web 部件的基本知识有所了解,例如,如何使用 WebPartManager 控件、Web 部件区域、编辑器、目录和持久性属性。

创建用于ASP.NET 2.0应用程序的Web部件

您可以用两种方法创建 Web 部件。第一种方法涉及创建一个自定义的 Web 部件类,该类从 System.Web.UI.WebControls.WebParts 命名空间中定义的 WebPart 类继承。使用该方法时,将自定义的 Web 部件类打包到一个程序集 DLL 中通常是有意义的,因为这样可以提供对重用、版本控制和 Visual Studio 2005 集成的更多控制。如果您对使用以前的 ASP.NET 版本生成自定义控件很熟 悉,则许多相同的技术适用于将自定义的 Web 部件生成到 DLL 程序集中。

用于创建 ASP.NET 2.0 Web 部件的第二种方法涉及使用用户控件。虽然该方 法不产生相同的重用和版本控制级别,但是它的确允许您使用 Visual Studio 窗体设计器来创建 Web 部件的用户界面部分。如果您想通过将用于用户输入、 验证和数据绑定的控件拖放到设计界面上来创建应用程序,则该方法适合于您。 当然,如果您已经花时间创建了一个您想用作 Web 部件的用户控件,它也是个 可以采用的好方法。

当创建一个专门设计为 Web 部件的用户控件时,建议您实现 IWebPart 接口 。这样,Web 部件后台的代码就可通过编程方式分配自己的几个内部 Web 部件 属性,如它的 Title 和 TitleIconUrl。

本文附带的代码示例使用一个名为 WebPartBase 的自定义基类,该基类从 UserControl 继承并实现 IwebPart。该基类的定义部署在 App_Code 目录中名 为 WebPartBase.vb 的源文件中。每当您使用用户控件创建一个新 Web 部件时 ,只需在该代码隐藏文件中更改该基类以利用该技术:

Partial Class WebParts_Customers
Inherits WebPartBase
  Sub New()
Title = "Northwind Customer List"
TitleIconImageUrl = "~\img\Customers.gif"
  End Sub
End Class

设计可连接的 Web 部件

使用 Web 部件连接,您可以使用户更轻松地形象化数据各项之间存在的关系 。例如,Web 部件连接可以建模一个主-从方案,其中显示客户列表的 Web 部件 连接到另一个显示当前所选客户详细信息的 Web 部件。图 1 的示例说明这种设 计可能生成的用户界面外观。

图 1

Web 部件连接还可用于建模一对多关系。例如,显示客户列表的 Web 部件可 以连接到另一个显示针对当前所选客户的所有定单的 Web 部件。

通常使用 Web 部件连接建模的另一个方案是表单查询。在这种方案中,一个 Web 部件提供一个用户界面,该用户界面允许用户选择查询数据(如数据库表) 时所用的搜索或筛选条件。然后,该 Web 部件连接到另一个显示查询结果的 Web 部件。Web 部件连接用于在运行查询前,将筛选条件从一个 Web 部件传递 到另一个 Web 部件。

Web 部件连接基于提供者和使用者的概念。提供者 Web 部件通过一个编程接 口为一个或多个使用者 Web 部件提供信息。提供者和使用者之间交换的信息可 以是简单的数据项(如数字或字符串),也可以是较特殊的内容(如对一个复杂 数组或自定义对象集合的引用)。

如果针对 Windows SharePoint Services 2.0 (WSS) 编写了 Web 部件,您 可能已经熟悉它用于连接 Web 部件的模型。在 WSS 中,Web 部件只能使用一组 预定义的接口对连接。这些接口对的示例包括 ICellProvider 和 ICellConsumer,以及 IRowProvider 和 IRowConsumer。

ASP.NET 2.0 中的 Web 部件连接模型比 WSS 中的旧式模型更容易、更灵活 ,因为您可以使用自己的自定义接口。这意味着您无需使用由 Microsoft 人员 创建的接口定义。而且,您无需对接口对进行任何操作,它们必须由提供者和使 用者实现。使用 ASP.NET 2.0,只有提供者需要实现一个接口。

要了解其工作方式,我们先在两个 Web 部件之间创建一个连接。对于我要在 本月专栏中提供的示例,我决定使用 Northwind 数据库,因为它有一个 Customers 表和一个 Orders 表。这使我能为您展示如何针对主-从和一对多关 系设计 Web 部件。有一点需要注意,如果使用 SQL Server 2005,则在产品安 装过程中并不安装该示例 Northwind 数据库。要安装它,您必须下载并运行 Microsoft Web 站点上可用的脚本。

现在,假设您要在一个显示客户列表的 Web 部件和一个显示当前所选客户的 详细信息的客户 Web 部件之间建立一个 Web 部件连接,如图 1所示。显示客户 列表的 Web 部件将扮演提供者的角色,而显示当前所选客户的详细信息的 Web 部件则作为使用者。在这种情况下,您希望提供者为使用者提供当前所选客户的 CustomerID 字段。

首先,创建一个名为 ICustomerIDProvider 的简单接口:

Public Interface ICustomerIDProvider
ReadOnly Property CustomerID() As String
End Interface

时间: 2024-12-02 21:15:01

引入ASP.NET 2.0 Web部件连接的相关文章

引入 ASP.NET Web 部件连接

asp.net|web 对于本专栏,我假设您已经对 Web 部件的基本知识有所了解,例如,如何使用 WebPartManager 控件.Web 部件区域.编辑器.目录和持久性属性.如果您还不了解,建议您在继续阅读本文之前先阅读刚才提到的那篇文章. 创建用于 ASP.NET 2.0 应用程序的 Web 部件 您可以用两种方法创建 Web 部件.第一种方法涉及创建一个自定义的 Web 部件类,该类从 System.Web.UI.WebControls.WebParts 命名空间中定义的 WebPar

使用Web标准生成ASP.NET 2.0 Web站点

asp.net|web|web标准|站点    简介 Web 标准使您能通过最少的工作,生成可被最广大受众访问的 Web 站点.Web 标准的承诺是:只需设计页面一次,即可让该页以完全相同的方式在任何现代的浏览器中显示和工作.例如,在按照标准生成以后,旨在在 Microsoft Internet Explorer 中以某种方式显示的页可在其他浏览器(如,Mozilla Firefox.Netscape Navigator.Opera.Camino 和 Safari)中以相同的方式显示,而无需完成

ASP.NET 2.0 Web窗体语法指导

asp.net|web|语法 ASP.NET Web窗体页面是一个宣告式的文本文件,扩展名是.aspx.除了静态的内容之外,你还可以使用八种不同的语法标记元素.这一部分回顾这些语法元素并提供了一些使用方法示例. 呈现代码的语法:<% %>和<%= %> 代码呈现块用<% ... %>元素表示,它允许你控制呈现的内容,在Web窗体页面执行的显示阶段执行.下面的例子演示了如何使用它们循环显示HTML的内容. <%@ Page Language="VB&quo

怎样从ASP.NET 2.0中读取连接字符串的设置

asp.net|字符串 在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串.连接字符串本身存储在 Web.config 文件中的 <connectionStrings> 配置节下面,以便易于在单个位置为应用程序中的所有页进行维护. 范例程序代码如下: <?xml version="1.0"?><configuration><connectionStrings><add

轻松加密ASP.NET 2.0 Web程序配置信息

asp.net|web|程序|加密 一. 简介 当创建ASP.NET 2.0应用程序时,开发者通常都把敏感的配置信息存储在Web.config文件中.最典型的示例就是数据库连接字符串,但是包括在Web.config文件中的其它敏感信息还包括SMTP服务器连接信息和用户凭证数据,等等.尽管默认情况下可以配置ASP.NET以拒绝所有对扩展名为.config的文件资源的HTTP请求:但是,如果一个黑客能够存取你的web服务器的文件系统的话,那么,Web.config中的敏感信息仍然能够被窃取.例如,也

如何从ASP.NET 2.0中读取连接字符串的设置

在ASP.NET 2.0中,使用了一种在运行时解析为连接字符串值的新的声明性表达式语法,按名称引用数据库连接字符串.连接字符串本身存储在 Web.config 文件中的 <connectionStrings> 配置节下面,以便易于在单个位置为应用程序中的所有页进行维护. 范例程序代码如下: <?xml version="1.0"?> <configuration> <connectionStrings> <add name=&quo

asp.net 2.0 Webconfig中连接串的加密

ASP.NET 2.0 允许用户对配置文件的单个节进行加密本文.通过示例,演示如何以编程方式对配置节进行加密,配置API如何自动处理加密的节. ASP.NET 2.0 现在允许您对配置文件的单个节进行加密,这样,几乎不可能使用文本编辑器来读取这些配置节. ASP.NET 包括两个内置的受保护配置提供程序:RSA和DPAPI DPAPI提供程序使用特定于计算机的密钥,因此您必须在每台计算机上实际加密配置设置.默认使用的RSA提供程序允许您选择创建RSA密钥并将其安装在其他计算机上,这样您就可以在这

请教一下,asp.net 2.0数据库的连接问题?

问题描述 在一个WEB应用中,数据库是怎么用的?比如有A,B,C这三个页面都用到了数据库里的信息`~~但是总不可能为每个页面都创建个数据库连接吧?请教一下在WEB应用中数据库连接是怎么做的? 解决方案 解决方案二:在web.config里设置呀!解决方案三:完全可以,一点问题都没有.当然可以在Application_start里面建立一个全局变量,Application["cn"]=cn..解决方案四:嗯,可能的,而且每个页面要读取数据都需要数据库连接去看看ado.net的教程好了.解

ASP.NET 2.0的新功能

ASP.NET 2.0的新功能 ASP.NET 2.0提高ASP.NET通过增加一些新的特点. -------------------------------------------------- ------------------------------ 改进ASP.NET 2.0中 ASP.NET 2.0的目的是使Web开发更容易和更快. 设计目标为ASP.NET 2.0 : 提高生产率,消除70 %的代码 使用相同的控制,所有类型的设备 提供一个更快更好的Web服务器平台 简化汇编和安装