HOW TO:在兩個 Web 組件控制項之間宣告靜態連接
更新:2007 年 11 月
藉由以頁面保存格式宣告連接,開發人員可在兩個伺服器控制項之間建立靜態 Web 組件連接。如同已宣告的控制項一樣,靜態連接會成為 Web 網頁上的永久物件。所有使用者都可看到靜態連接 (因為它是共用物件),但他們絕無法刪除連接物件,儘管使用者介面 (UI) 提供允許這樣做的選項時可將連接物件中斷連接。如果您希望所有的使用者可以一直使用連接,卻無法將連接從網頁上刪除,靜態連接是很好的選擇。如需連接的詳細資訊,請參閱 WebPartConnection 和 Web 組件連接概觀。如需靜態連接的詳細資訊,請參閱 IsStatic。本主題會示範如何在兩個 WebPart 控制項間建立靜態連接。
注意事項: |
---|
本主題主要描述如何在 Web 網頁的標記中宣告靜態連接。若要在兩個伺服器控制項間宣告靜態 Web 組件連接,必須適當地設計這些控制項處理連接,且這些控制項必須位於 WebPartZoneBase 區域。如需參與連接之控制項需求的完整描述,請參閱 WebPartConnection。若要取得兩個 WebPart 控制項的範例程式碼,以及用於裝載本主題中示範之靜態連接的 Web 網頁,請參閱 IsStatic 屬性的<範例>一節。 |
若要在區域內宣告伺服器控制項
在將包含連接之 Web 網頁的主體區段中加入 <webpartzone> 項目,並加入子 <zonetemplate> 項目,以包含您加入至區域的伺服器控制項。此程式碼應該看起來與下列範例相同。
<asp:WebPartZone ID="WebPartZone1" > <ZoneTemplate> </ZoneTemplate> </asp:WebPartZone>
在 <zonetemplate> 項目的標記 (Tag) 之間,於 Web 組件連接中宣告將充當提供者的伺服器控制項和消費者控制項。必須已設計這些控制項參與連接。您還可將其他伺服器控制項加入區域。正如本主題之前所指出的那樣,此範例中宣告的控制項是從 IsStatic 屬性中的範例程式碼取得的。具有伺服器控制項之整個區域的程式碼看起來與下列範例相同。
<asp:WebPartZone ID="WebPartZone1" > <ZoneTemplate> <aspSample:ZipCodeWebPart ID="zip1" Title="ZIP Code Provider" /> <aspSample:WeatherWebPart ID="weather1" Title="ZIP Code Consumer" /> </ZoneTemplate> </asp:WebPartZone>
若要宣告靜態連接
您的 Web 網頁應該已具有 <asp:webpartmanager> 項目,在使用 Web 組件控制項的網頁上需要該項目。加入 <staticconnections> 項目做為 <asp:webpartmanager> 項目的子系,以包含一或多個已宣告的靜態連接。此程式碼應該看起來與下列範例相同。
<asp:WebPartManager ID="mgr" > <StaticConnections> </StaticConnections> </asp:WebPartManager>
在 <staticconnections> 項目內宣告 <asp:webpartconnection> 項目。對於連接,除了 id 和 runat 屬性之外,您還必須指定下列必要的屬性:
ConsumerID - 表示連接中消費者控制項的 ID。
ConsumerConnectionPointID - 表示用於建立連接之消費者中特殊回呼 (Callback) 方法的 ID。只有在消費者具有多個連接點 (Connection Point) 時,這個屬性才是必要的。如需連接點的詳細資訊,請參閱 ConnectionPoint。
ProviderID - 表示連接中提供者控制項的 ID。
ProviderConnectionPointID - 表示用於建立連接之提供者中特殊回呼方法的 ID。只有在提供者具有多個連接點時,這個屬性才是必要的。
已完成的 <asp:webpartmanager> 項目程式碼和子靜態連接應該看起來與下列範例相同。
<asp:WebPartManager ID="mgr" > <StaticConnections> <asp:WebPartConnection ID="conn1" ConsumerConnectionPointID="ZipCodeConsumer" ConsumerID="weather1" ProviderConnectionPointID="ZipCodeProvider" ProviderID="zip1" /> </StaticConnections> </asp:WebPartManager>