首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

10.2.2  创建Web Part使用程序

创建Web Part使用程序比创建提供程序容易得多:只需创建一个连接点方法即可。连接点方法是一个子例程,它接受一个声明为接口类型的参数,例如IBookInfo。必须给该方法提供ConnectionConsumer特性,这个特性可以是要在ConnectionsZone用户界面中使用的显示名称。使用传送给方法的参数,例程中的方法就可以通过接口访问提供程序。下面的Visual Basic 2005代码通过IBookInfo接口访问提供程序,提取ISBN属性的值。

<WebControls.WebParts.WebParts.ConnectionConsumer("IBookInfo Consumer")> _

Public Sub IBookInfoConsumer(ByVal bk As IBookInfo)

Dim strISBN As String

   strISBN = bk.ISBN

End Sub

C#的对应代码如下所示。

[WebControls.WebParts.WebParts.ConnectionConsumer("IBookInfo Consumer")]

public void IBookInfoConsumer(IBookInfo bk)

{

  string strISBN;

  strISBN = bk.ISBN;

}

要在连接例程的外部访问提供程序,只需在类级上把一个变量声明为接口类型。可以在连接例程中设置这个变量,再在连接例程的外部使用它。但如果Web Part使用程序没有连接到提供程序上,在Visual Basic 2005中,类变量就设置为Nothing,在C#中设置为null。为了处理这种情况,应在使用类变量之前检查它是否已设置。

下面的Visual Basic 2005代码把变量ibk声明为IBookInfo,在连接例程中设置ibk,在Render例程中使用ibk变量访问提供程序。

Private ibk As IBookInfo

<WebControls.WebParts.WebParts.ConnectionConsumer("IBookInfo Consumer")> _

Public Sub IBookInfoConsumer(ByVal bk As IBookInfo)

   ibk = bk

End Sub

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)

  If ibk Is Nothing Then

     writer.Write("<b>No book information available.</b>")

  Else

     writer.Write("ISBN: <b>" & ibk.ISBN & "</b>")

  End If

End Sub

C#的对应代码如下所示。

private IBookInfo ibk;

[WebControls.WebParts.WebParts.ConnectionConsumer("IBookInfo Consumer")]

public void IBookInfoConsumer(IBookInfo bk)

 {

  ibk = bk;

 }

protected override void Render(System.Web.UI.HtmlTextWriter writer)

 {

  if (ibk == null)

  {

     writer.Write("<b>No book information available.</b>");

   }

   else

   {

     writer.Write("ISBN: <b>" + ibk.ISBN + "</b>");

   }

 }

连接点例程在使用程序中运行之前,不能利用提供程序的接口。在Web Part使用程序中,第一次建立连接和进行后续的页面请求时,连接点例程都在使用程序的Load事件(和主页的LoadComplete事件)之后、页面的PreRender事件之前运行。

提示:

提供程序的连接例程仅在使用程序的连接点例程之前运行,而不在提供程序的生存期的其他时刻运行。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论