1. 程式人生 > >ConnectionsZone Web 伺服器控制元件概述

ConnectionsZone Web 伺服器控制元件概述

使用 Web 部件控制元件,可以讓使用者在執行時建立兩個伺服器控制元件之間的連線,以形成連線並共享資料。一個控制元件用作資料的提供者,另一個控制元件用作資料的使用者。這兩個控制元件可以是 WebPart 控制元件或任何其他型別的伺服器控制元件。必須將它們設計為處理連線且位於 WebPartZoneBase 區域中。

在配置控制元件以形成 Web 部件連線之後,仍需要連線這些控制元件。連線控制元件的方法有:

·在網頁中宣告連線。

·用程式碼建立連線。

·將 ConnectionsZone 控制元件新增到頁中,以便使用者可以根據需要連線控制元件。

ConnectionsZone

控制元件生成 UI,以便使用者能夠連線任何合格控制元件或斷開此類連線。該控制元件為可選控制元件,它不是形成連線所必需的。不過,如果想賦予使用者有關連線或斷開伺服器控制元件的控制權,該控制元件將很有用。

通過 ConnectionsZone 控制元件控制的 Web 部件控制元件屬性

ConnectionsZone 控制元件提供的使用者介面能讓使用者設定與指定的使用者控制元件和指定的提供者控制元件相關的 ConnectionPoint 物件。

啟用 ConnectionsZone 控制元件

作為一個工具區域,ConnectionsZone 控制元件被設計為僅當網頁處於連線模式時可見。(當頁上的

WebPartManager 控制元件將其 DisplayMode 屬性設定為 ConnectDisplayMode 時,該頁將處於連線模式。)使用者將頁切換到連線模式後,必須單擊其中一個伺服器控制元件的連線謂詞才能顯示連線 UI

一、ConnectionsZone

提供一個使用者介面 (UI),該介面使使用者能夠在位於 WebPartZoneBase 區域中的 WebPart 與其他伺服器控制元件之間形成連線。

通過使用 Web 部件控制元件集,可以使兩個伺服器控制元件形成連線並共享資料,其中一個控制元件作為資料提供者,另一個控制元件作為資料使用者。這兩個控制元件可以是

WebPart 控制元件或任何其他型別的伺服器控制元件,條件是它們能夠處理連線且位於 WebPartZoneBase 區域中。

即使存在形成 Web 部件連線所必需的控制元件和條件,仍然必須真正地連線控制元件。有三種方式在伺服器控制元件之間形成連線:在網頁中宣告連線,在程式碼中建立連線,或是將 ConnectionsZone 控制元件新增到頁面以便使用者可以根據需要連線控制元件。ConnectionsZone 控制元件生成一個使用者介面,該使用者介面使使用者能夠連線頁面上滿足形成連線所需條件的任何伺服器控制元件或是斷開這些控制元件的連線。該控制元件為可選控制元件,不是形成連線所必需的,但在希望使用者能夠控制連線哪些控制元件或是斷開哪些控制元件的連線的情況下,該控制元件十分有用。

ConnectionsZone 控制元件是繼承自 ToolZone 基類的 Web 部件工具區域控制元件之一。作為工具區域,ConnectionsZone 控制元件被設計為僅當其網頁處於特定顯示模式時才可見。在這種情況下,顯示模式稱為連線模式(當頁面上的 WebPartManager 控制元件的 DisplayMode 屬性值設定為 ConnectDisplayMode 時,該頁面處於此模式)。當用戶將頁面切換到連線模式後,必須在一個伺服器控制元件的謂詞選單上單擊連線謂詞,然後連線使用者介面變為可見。

作為 Web 部件區域控制元件,ConnectionsZone 控制元件是設計為包含其他控制元件的 WebZone 區域(該區域繼承自 CompositeControl 類)的一種。一般來說,ConnectionsZone 區域具有的大多數元素與其他 Web 部件工具區域相同:頁首、正文或內容區域以及頁尾。

重要說明:注意,與大多數其他 Web 部件區域不同,ConnectionsZone 區域不包含與其相關聯的唯一伺服器控制元件型別。有關區域以及它們所包含的關聯控制元件的列表,請參見 WebZone 類概述中的圖表。但是 ConnectionsZone 區域不包含 WebPartConnection 控制元件。實際上,該區域很少用於為使用者提供使用者介面以連線頁面上某個 WebPartZoneBase 區域中存在的伺服器控制元件或斷開這些控制元件的連線。ConnectionsZone 控制元件中所包含的控制元件僅為標準 ASP.NET 伺服器控制元件,標準 ASP.NET 伺服器控制元件是由 ConnectionsZone 控制元件作為用於形成連線的使用者介面的一部分生成的。

呈現 ConnectionsZone 控制元件時,該控制元件根據頁面上能夠形成連線的伺服器控制元件生成一個使用者介面。ConnectionsZone 控制元件確定頁面上 WebPartZoneBase 區域中的哪些伺服器控制元件是提供者,哪些控制元件是使用者,哪些連線點可用,以及伺服器控制元件當前是連線的還是斷開連線的,然後相應地生成使用者介面。

例如,假設有一個能夠作為提供者的 WebPart 控制元件,一個能夠作為使用者的 WebPart 控制元件,這兩個控制元件在頁面上的 WebPartZone 中宣告,而且當前是斷開連線的。當用戶將頁面切換到連線模式並在一個控制元件上單擊連線謂詞時,ConnectionsZone 控制元件生成一個包含一個連結的使用者介面,該連結在單擊時顯示一個窗體,使用者可以在該窗體中選擇選項以建立連線。(如果這些控制元件以前是連線的,則初始檢視改為向用戶提供一個按鈕以斷開這些控制元件的連線)。在用於建立新連線的連線使用者介面中,會向用戶顯示哪個控制元件為提供者,哪個控制元件為使用者。每個伺服器控制元件下方都會顯示一個下拉列表控制元件,列出控制元件的可用 ConnectionPoint 物件。使用者必須從控制元件各自的下拉列表中為提供者選擇一個 ProviderConnectionPoint 物件(以確定將與使用者共享的介面和資料),為將要連線到提供者的每個使用者選擇一個 ConsumerConnectionPoint 物件(以確定該使用者將使用的介面和資料)。

說明: Web 部件控制元件集預設實現中,一個提供者可以連線到多個使用者,但是一個使用者只能有一個提供者。

若要使用 ConnectionsZone 控制元件,可以使用 <asp:connectionszone> 元素在網頁上的 <form> 元素中(但是不能巢狀在另一個 Web 部件區域元素中)宣告該控制元件,也可以以程式設計方式將該控制元件新增到頁面中。如果在頁面中宣告元素,則與其他 Web 部件區域不同,您不能在 <asp:connectionszone> 元素的標記之間宣告任何其他型別的伺服器控制元件。可以在該元素中宣告與其自己的屬性和樣式詳細資訊相關的元素,但是該元素是獨立的元素,不是可以在其中宣告其他伺服器控制元件的模板控制元件。

說明:為改進可訪問性,在 <fieldset> 元素中呈現了 ConnectionsZone 控制元件。<fieldset> 元素在 ConnectionsZone 控制元件中對一組相關的用於建立連線的控制元件進行分組,還可為在那些兼用於視覺化使用者代理(如普通 Web 瀏覽器)和麵向語音的使用者代理(如螢幕閱讀軟體)的控制元件之間進行選項卡式導航提供便利。

ConnectionsZone 控制元件具有多個用於呈現連線使用者介面的屬性。一個屬性集包括多個在使用者介面中執行操作的謂詞(僅用於與連線相關的情況):ConfigureVerbConnectVerb DisconnectVerb。大的屬性集(尤其是用於連線區域使用者介面的屬性集)包含在使用者介面中的各個位置(或在特定情況下,如出現錯誤時)顯示的文字字串:ConfigureConnectionTitleConnectToConsumerInstructionTextConnectToConsumerTextConnectToConsumerTitleConnectToProviderInstructionTextConnectToProviderTextConnectToProviderTitleConsumersInstructionTextConsumersTitleExistingConnectionErrorMessageGetFromTextGetTextInstructionTitleNewConnectionErrorMessageNoExistingConnectionInstructionTextNoExistingConnectionTitleProvidersInstructionTextProvidersTitleSendText SendToTextConnectionsZone 類還包含許多可在其他 Web 部件區域中找到的通用屬性:CancelVerbCloseVerbDisplayEmptyZoneTextHeaderTextInstructionText PartChromeType。最後,WebPartToConnect 屬性對於該類是唯一的,它引用啟動連線的控制元件(即使用者在其上單擊謂詞選單中的連線謂詞的控制元件,也是在 WebPartManager 控制元件的 SelectedWebPart 屬性中引用的控制元件)。

ConnectionsZone 類還有許多方法(所有這些方法都從基類繼承和重寫而來),其中的大多數方法來自 Web 部件區域基類。

對繼承者的說明:如果開發人員希望更改 ConnectionsZone 類的行為或該類為處理連線而提供的預設使用者介面,則可以擴充套件該類。

1.1示例

下面的程式碼示例演示如何在 Web 部件頁上使用 ConnectionsZone 控制元件。此示例包含四部分:

·一個使用者控制元件,用於切換網頁上的顯示模式。

·一個原始檔,包含郵政編碼介面的程式碼和兩個 WebPart 控制元件(用作連線的提供者和使用者)的程式碼。

·一個網頁,該網頁承載所有控制元件,演示如何宣告 <asp:connectionszone> 元素,並以宣告方式和程式設計方式設定連線區域的多個屬性。

·關於該示例在瀏覽器中的工作方式的說明。

此程式碼示例的第一部分是一個使用者控制元件,該控制元件使使用者能夠切換網頁上的顯示模式。

<%@ control language="C#" classname="DisplayModeMenuCS"%>

<script runat="server">

// Use a field to reference the current WebPartManager.

WebPartManager _manager;

void Page_Init(object sender, EventArgs e)

{

Page.InitComplete += new EventHandler(InitComplete);

}

void InitComplete(object sender, System.EventArgs e)

{

_manager = WebPartManager.GetCurrentWebPartManager(Page);

String browseModeName = WebPartManager.BrowseDisplayMode.Name;

// Fill the dropdown with the names of supported display modes.

foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)

{

String modeName = mode.Name;

// Make sure a mode is enabled before adding it.

if (mode.IsEnabled(_manager))

{

ListItem item = new ListItem(modeName, modeName);

DisplayModeDropdown.Items.Add(item);

}

}

// If shared scope is allowed for this user, display the scope-switching

// UI and select the appropriate radio button for the current user scope.

if (_manager.Personalization.CanEnterSharedScope)

{

Panel2.Visible = true;

if (_manager.Personalization.Scope == PersonalizationScope.User)

RadioButton1.Checked = true;

else

RadioButton2.Checked = true;

}

}

// Change the page to the selected display mode.

void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)

{

String selectedMode = DisplayModeDropdown.SelectedValue;

WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];

if (mode != null)

_manager.DisplayMode = mode;

}

// Set the selected item equal to the current display mode.

void Page_PreRender(object sender, EventArgs e)

{

ListItemCollection items = DisplayModeDropdown.Items;

int selectedIndex =

items.IndexOf(items.FindByText(_manager.DisplayMode.Name));

DisplayModeDropdown.SelectedIndex = selectedIndex;

}

// Reset all of a user's personalization data for the page.

protected void LinkButton1_Click(object sender, EventArgs e)

{

_manager.Personalization.ResetPersonalizationState();

}

// If not in User personalization scope, toggle into it.

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)

{

if (_manager.Personalization.Scope == PersonalizationScope.Shared)

_manager.Personalization.ToggleScope();

}

// If not in Shared scope, and if user is allowed, toggle the scope.

protected void RadioButton2_CheckedChanged(object sender, EventArgs e)

{

if (_manager.Personalization.CanEnterSharedScope &&

_manager.Personalization.Scope == PersonalizationScope.User)

_manager.Personalization.ToggleScope();

}

</script>

<div>

<asp:Panel ID="Panel1" runat="server"

Borderwidth="1"

Width="230"

BackColor="lightgray"

Font-Names="Verdana, Arial, Sans Serif" >

<asp:Label ID="Label1" runat="server"

Text="&nbsp;Display Mode"

Font-Bold="true"

Font-Size="8"

Width="120"

AssociatedControlID="DisplayModeDropdown"/>

<asp:DropDownList ID="DisplayModeDropdown" runat="server"

AutoPostBack="true"

Width="120"

相關推薦

ConnectionsZone Web 伺服器控制元件概述

使用 Web 部件控制元件,可以讓使用者在執行時建立兩個伺服器控制元件之間的連線,以形成連線並共享資料。一個控制元件用作資料的提供者,另一個控制元件用作資料的使用者。這兩個控制元件可以是 WebPart 控制元件或任何其他型別的伺服器控制元件。必須將它們設計為處理連線且位

CatalogZone Web 伺服器控制元件概述

Web 部件控制元件(例如 CatalogZone 控制元件)的一項主要功能是可以讓終端使用者個性化網頁並儲存其個性化設定。CatalogZone 控制元件允許終端使用者在執行時向 Web 部件頁新增 WebPart 控制元件或其他伺服器控制元件。CatalogZone 控

ImportCatalogPart Web 伺服器控制元件概述

ImportCatalogPart Web 伺服器控制元件可匯入 WebPart 控制元件的說明檔案(或用作 WebPart 控制元件的其他 ASP.NET 伺服器控制元件)。這樣就可以將該控制元件通過預先指定的設定新增到網頁中。該說明檔案使使用者可以共享 WebPart

ASP.NET Web 伺服器控制元件事件模型

ASP.NET 中有一個重要功能,允許您通過與客戶端應用程式中類似的、基於事件的模型來對網頁進行程式設計。舉一個簡單的例子,例如,可以向 ASP.NET 網頁中新增一個按鈕,然後為該按鈕的 Click 事件編寫事件處理程式。儘管這種情況在僅使用客戶端指令碼(在動態 HTML 中處理按鈕的 oncli

【ASP.NET】——WEB伺服器控制元件

WEB伺服器控制元件分類: 內部控制元件 列表控制元件 複雜控制元件 驗證控制元件 內部控制元件 ASP.NET引入一組稱為“內部控制元件”的新控制元件,專門用於ASP.NET 內部控制元件的使用方法與HTML控制元件相同,他們對映到HTML元素並通過

ASP.NET自定義Web伺服器控制元件-Button控制元件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web; usin

asp.net中為TextBox Web伺服器控制元件新增OnClick事件

在進行Web應用開發的時候,有時會需要使點選文字框控制元件(TextBox)執行某個特殊的任務,但TextBox卻沒有按鈕那樣的OnClick事件。百度了一段時間,發現了這個解決方法,貼於此,供大家共享。 // .aspx<asp:TextBox ID="TextBo

html控制元件、html伺服器控制元件web伺服器控制元件的區別

asp.net之所以現在開發方便和快捷,關鍵是它有一組強大的控制元件庫,包括web伺服器控制元件,web使用者控制元件,web自定義控制元件,html伺服器控制元件和html控制元件等。這裡我主要說說html控制元件 、html伺服器控制元件和web伺服器控制元件的區別。     1、html控制元件:就是我

HTML伺服器控制元件Web伺服器控制元件

     asp.net之所以現在開發方便和快捷,關鍵是它有一組強大的控制元件庫,包括web伺服器控制元件,web使用者控制元件,web自定義控制元件,html伺服器控制元件和html控制元件等。這裡

Web伺服器控制元件和HTML控制元件區別

     這兩天在學習ASP.NET,遇到了Web伺服器控制元件和HTML控制元件。剛開始看見這兩個控制元件的時候,感覺很相似。 所以就想到了如下問題:這兩個控制元件有什麼區別?後來又看到了HTM

asp.net(c#)web伺服器控制元件,多選框checkboxlist控制元件

<%@ Page Language="c#" %> <script runat="server"> void Page_Load() { string msg = "You have selected the following items:<b

引發伺服器控制元件的客戶端單擊事件

    通過向控制元件的標記新增 onclick 屬性,可以將客戶端的單擊事件新增到大多數的 ASP.NET 伺服器控制元件中。但是,有些控制元件保留了 onclick 屬性,用於定義與伺服器事件的繫結。這些控制元件包括 Button、LinkButton 和 Imag

不使用ASP.NET中的伺服器控制元件將如何上傳檔案?

遇到檔案的上傳時,可能會有大部分的開發者喜歡使用伺服器控制元件,雖然很方便,但是卻不能很好的控制,不具靈活性。 現給出例子,使用html標籤語言靈活的控制檔案的上傳。 1、html部分 <input type="file" id="uploadFile" name="uploa

C#筆記——解構函式 虛方法 頁面處理事件的流程 伺服器控制元件

解構函式定義:建構函式用於實現類的例項的初始化。每個類都有建構函式,即使沒有宣告它,編譯器也會自動提供一個預設的建構函式。當建立一個物件的時候,自動呼叫建構函式,執行其中語句。使用建構函式請注意以下幾個問題:一個類的建構函式通常與類名相同建構函式不宣告返回型別,

asp net伺服器控制元件button先執行js再執行後臺的方法

                關於button這個伺服器控制元件,我一直想減少它向伺服器提交資料。那些檢測,還是在客戶端實現就好了。這就需要javascript,但是我發現僅僅有javascript還是不夠的。button伺服器控制元件的單擊事件叫“onClick”,所以javascript就無法使用這個事

asp.net 自定義伺服器控制元件屬性 [Bindable(true)]...

自定義伺服器控制元件屬性的特性:Bindable這個特性表示屬性是否可以繫結一個有效資料來源。通常使用布林值進行設定。例如:Bindable(true)。如果使用值true標記屬性,表示該屬性可以繫結一個有效資料來源,且應引發該屬性的屬性更改通知。Browsable指定屬性是否應該在屬性瀏覽器中顯示,使用布林

ASP.net[2.0示例]實現折線,柱狀,扇形圖--web chart控制元件

 推薦連結:輕鬆註冊,推薦一個網站獲得20元網路賬本 —免費的網路記帳本,今天你記賬了嗎?倍新諮詢—投資諮詢專家線上炒外匯—免費訂閱外匯月刊學不好英語,不是你的錯。因為學習內容太枯燥乏味! 為什麼不試試《看電影學英語》?

Android快樂貪吃蛇遊戲實戰專案開發教程-02虛擬方向鍵(一)自定義控制元件概述

一、自定義控制元件簡介 在本專案中,無論是遊戲主區域還是虛擬方向鍵都是通過自定義控制元件來實現的,我們有必要先對自定義控制元件有個簡單的瞭解。而且通過自定義控制元件的學習能更好的理解系統自帶控制元件的內部機制。 什麼是自定義控制元件呢? 我們平時用的控制元件(比如Button、TextVie

MFC程式新增Web瀏覽器控制元件(IE控制元件)

MFC程式新增Web瀏覽器控制元件(IE控制元件) 1. 新建一個基於對話方塊的MFC程式 這裡使用VS2010建立一個MFC Application,種類選擇基於對話方塊Dialog based。 2. 新增Web瀏覽器控制元件 2.1   選擇選單T

Dropdownlist在ajax當伺服器控制元件提交時錯誤“回發或回撥引數無效 啟用了事件驗證

專案中用到下拉列表多級聯動,開始沒用ajax全部伺服器處理,後來這樣重新整理太慢了用ajax(ajax.dll),結果就遇到 錯誤: 回發或回撥引數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 &