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

   }

   else

   {

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

   }

 }

 

連接點例程在使用程序中運行之前,不能利用提供程序的接口。在Web Part使用程序中,第一次建立連接和進行後續的頁面請求時,連接點例程都在使用程序的Load事件(和主頁的LoadComplete事件)之後、頁面的PreRender事件之前運行。

 

 

首先看看創建給其他Web Part發送數據的Web Part提供程序的過程。創建可以爲另一個Web Part提供數據的Web Part,需要三步。

(1) 定義一個接口,指定在Web Part之間傳送什麼數據。

(2) 提供數據的Web Part要執行這個接口,包括編寫接口中方法和屬性的代碼。

(3) 編寫例程。處理提供程序中的連接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章