Web Parts与自定义控件 建立连接

创建Web Part提供程序

1.定义接口

                                  public interface IBookInfo:

                                          {

                                                   string ISBN

                                                         {

                                                                    get;

                                                                     set;

                                                             }

                                          }

2. 执行接口

           

在C#中,把接口的名称添加到类定义的最后,之前加一个逗号,如下面的代码所示。
 public class ProviderPart : System.Web.UI.WebControls.WebControl, IBookInfo
         注意:执行接口的例程必须与所关联的接口中的例程有相同的签名。例如,如果接口中的例程是一个属性,它没有参数,返回一个整数,则执行接口的例程也必须有一个不带参数、返回一个整数的属性。
在C#中,不能给接口例程指定别名,但例程名必须包含接口名和例程名,中间用一个句点分开。
public class ProviderPart : WebControl, IBookInfo
  {
   string IBookInfo.ISBN
   {
      get
      {
         return MyData;
      }
      set
      {
         MyData = value;
      }
  }

 

 3. 创建连接点

最后,需要为接口提供一个连接点方法。连接点方法是一个函数,它给Web Part提供程序返回一个引用。该函数的返回值是该提供程序的接口执行代码。
可以给这个方法指定任意名称,但为了说明这个方法是一个连接点,需要在例程中添加ConnectionProvider特性。必须给ConnectionProvider传送一个显示名称(这是在ConnectionsZone用户界面上使用的名称)。

                    

 [WebControls.WebParts.ConnectionProvider("Provides ISBN")]

public IBookInfo IBookInfoProvider()

{

  return this;

}

10.2.2  创建Web Part使用程序

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

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

public void IBookInfoConsumer(IBookInfo bk)

{

  string strISBN;

  strISBN = bk.ISBN;

}

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("No book information available.");

   }

   else

   {

     writer.Write("ISBN: " + ibk.ISBN + "");

   }

 }

 

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

 

 

首先看看创建给其他Web Part发送数据的Web Part提供程序的过程。创建可以为另一个Web Part提供数据的Web Part,需要三步。

(1) 定义一个接口,指定在Web Part之间传送什么数据。

(2) 提供数据的Web Part要执行这个接口,包括编写接口中方法和属性的代码。

(3) 编写例程。处理提供程序中的连接。

你可能感兴趣的:(Web Parts与自定义控件 建立连接)