ConnectionsZone 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供使用者介面 (UI),可讓使用者在 WebPart 和位於 WebPartZoneBase 區域的其他伺服器控制項之間建立連接。
public ref class ConnectionsZone : System::Web::UI::WebControls::WebParts::ToolZone
public class ConnectionsZone : System.Web.UI.WebControls.WebParts.ToolZone
type ConnectionsZone = class
inherit ToolZone
Public Class ConnectionsZone
Inherits ToolZone
- 繼承
範例
下列程式代碼範例示範如何在網頁元件頁面上使用 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=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown" runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
<%@ control language="vb" classname="DisplayModeMenuVB"%>
<script runat="server">
' Use a field to reference the current WebPartManager.
Dim _manager As WebPartManager
Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
AddHandler Page.InitComplete, AddressOf InitComplete
End Sub
Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs)
_manager = WebPartManager.GetCurrentWebPartManager(Page)
Dim browseModeName As String = WebPartManager.BrowseDisplayMode.Name
' Fill the dropdown with the names of supported display modes.
Dim mode As WebPartDisplayMode
For Each mode In _manager.SupportedDisplayModes
Dim modeName As String = mode.Name
' Make sure a mode is enabled before adding it.
If mode.IsEnabled(_manager) Then
Dim item As New ListItem(modeName, modeName)
DisplayModeDropdown.Items.Add(item)
End If
Next mode
' 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 Then
Panel2.Visible = True
If _manager.Personalization.Scope = PersonalizationScope.User Then
RadioButton1.Checked = True
Else
RadioButton2.Checked = True
End If
End If
End Sub
' Change the page to the selected display mode.
Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As EventArgs)
Dim selectedMode As String = DisplayModeDropdown.SelectedValue
Dim mode As WebPartDisplayMode = _
_manager.SupportedDisplayModes(selectedMode)
If Not (mode Is Nothing) Then
_manager.DisplayMode = mode
End If
End Sub
' Set the selected item equal to the current display mode.
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
Dim items As ListItemCollection = DisplayModeDropdown.Items
Dim selectedIndex As Integer = _
items.IndexOf(items.FindByText(_manager.DisplayMode.Name))
DisplayModeDropdown.SelectedIndex = selectedIndex
End Sub
' Reset all of a user's personalization data for the page.
Protected Sub LinkButton1_Click(ByVal sender As Object, _
ByVal e As EventArgs)
_manager.Personalization.ResetPersonalizationState()
End Sub
' If not in User personalization scope, toggle into it.
Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.Scope = PersonalizationScope.Shared Then
_manager.Personalization.ToggleScope()
End If
End Sub
' If not in Shared scope, and if user is allowed, toggle the scope.
Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.CanEnterSharedScope AndAlso _
_manager.Personalization.Scope = PersonalizationScope.User Then
_manager.Personalization.ToggleScope()
End If
End Sub
</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=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown" runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
範例的第二個部分是具有 介面和自定義控件的來源檔案。 請注意,控件 ZipCodeWebPart
會實作 IZipCode
介面,並新增 ConnectionProvider
屬性,讓控件可以做為連接的提供者。 控件 WeatherWebPart
具有標示 ConnectionConsumer
為 屬性的方法,它會在其中取 IZipCode
用 介面,因此它可以作為連接中的取用者。
若要執行程式碼範例,您必須編譯此原始程式碼。 您可以明確地編譯它,並將產生的元件放在網站的 Bin 資料夾或全域程式集緩存中。 或者,您可以將原始程式碼放在月臺的 App_Code資料夾中,其將在運行時間動態編譯。 此範例使用動態編譯。 如需示範如何編譯的逐步解說,請參閱逐步解說 :開發和使用自定義 Web 伺服器控制件。
namespace Samples.AspNet.CS.Controls
{
using System;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public interface IZipCode
{
string ZipCode { get; set;}
}
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class ZipCodeWebPart : WebPart, IZipCode
{
string zipCodeText = String.Empty;
TextBox input;
Button send;
public ZipCodeWebPart()
{
}
// Make the implemented property personalizable to save
// the Zip Code between browser sessions.
[Personalizable()]
public virtual string ZipCode
{
get { return zipCodeText; }
set { zipCodeText = value; }
}
// This is the callback method that returns the provider.
[ConnectionProvider("Zip Code Provider", "ZipCodeProvider")]
public IZipCode ProvideIZipCode()
{
return this;
}
protected override void CreateChildControls()
{
Controls.Clear();
input = new TextBox();
this.Controls.Add(input);
send = new Button();
send.Text = "Enter 5-digit Zip Code";
send.Click += new EventHandler(this.submit_Click);
this.Controls.Add(send);
}
private void submit_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(input.Text))
{
zipCodeText = Page.Server.HtmlEncode(input.Text);
input.Text = String.Empty;
}
}
}
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class WeatherWebPart : WebPart
{
private IZipCode _provider;
string _zipSearch;
Label DisplayContent;
// This method is identified by the ConnectionConsumer
// attribute, and is the mechanism for connecting with
// the provider.
[ConnectionConsumer("Zip Code Consumer", "ZipCodeConsumer")]
public void GetIZipCode(IZipCode Provider)
{
_provider = Provider;
}
protected override void OnPreRender(EventArgs e)
{
EnsureChildControls();
if (this._provider != null)
{
_zipSearch = _provider.ZipCode.Trim();
DisplayContent.Text = "My Zip Code is: " + _zipSearch;
}
}
protected override void CreateChildControls()
{
Controls.Clear();
DisplayContent = new Label();
this.Controls.Add(DisplayContent);
}
}
}
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Interface IZipCode
Property ZipCode() As String
End Interface
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class ZipCodeWebPart
Inherits WebPart
Implements IZipCode
Private zipCodeText As String = String.Empty
Private input As TextBox
Private send As Button
Public Sub New()
End Sub
' Make the implemented property personalizable to save
' the Zip Code between browser sessions.
<Personalizable()> _
Public Property ZipCode() As String _
Implements IZipCode.ZipCode
Get
Return zipCodeText
End Get
Set(ByVal value As String)
zipCodeText = value
End Set
End Property
' This is the callback method that returns the provider.
<ConnectionProvider("Zip Code Provider", "ZipCodeProvider")> _
Public Function ProvideIZipCode() As IZipCode
Return Me
End Function
Protected Overrides Sub CreateChildControls()
Controls.Clear()
input = New TextBox()
Me.Controls.Add(input)
send = New Button()
send.Text = "Enter 5-digit Zip Code"
AddHandler send.Click, AddressOf Me.submit_Click
Me.Controls.Add(send)
End Sub
Private Sub submit_Click(ByVal sender As Object, _
ByVal e As EventArgs)
If input.Text <> String.Empty Then
zipCodeText = Page.Server.HtmlEncode(input.Text)
input.Text = String.Empty
End If
End Sub
End Class
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class WeatherWebPart
Inherits WebPart
Private _provider As IZipCode
Private _zipSearch As String
Private DisplayContent As Label
' This method is identified by the ConnectionConsumer
' attribute, and is the mechanism for connecting with
' the provider.
<ConnectionConsumer("Zip Code Consumer", "ZipCodeConsumer")> _
Public Sub GetIZipCode(ByVal Provider As IZipCode)
_provider = Provider
End Sub
Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
EnsureChildControls()
If Not (Me._provider Is Nothing) Then
_zipSearch = _provider.ZipCode.Trim()
DisplayContent.Text = "My Zip Code is: " + _zipSearch
End If
End Sub
Protected Overrides Sub CreateChildControls()
Controls.Clear()
DisplayContent = New Label()
Me.Controls.Add(DisplayContent)
End Sub
End Class
End Namespace
範例程序代碼的第三個部分是網頁。 靠近頂端是 Register
使用者控件的指示詞,以及用於連接中的自定義控制件。 元素 <asp:connectionszone>
會在頁面中宣告為以宣告方式使用 控件的 ConnectionsZone 範例。 在元素中,會以宣告方式設定許多屬性。 線上區域的其他屬性會在頁面的 區段中以程式設計方式 <script>
設定。
<%@ Page Language="C#" %>
<%@ register tagprefix="uc1"
tagname="DisplayModeMenuCS"
src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.CS.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_PreRender(object sender, EventArgs e)
{
// Set properties on verbs.
connectionsZone1.CancelVerb.Description =
"Terminates the connection process";
connectionsZone1.CloseVerb.Description =
"Closes the connections UI";
connectionsZone1.ConfigureVerb.Description =
"Configure the transformer for the connection";
connectionsZone1.ConnectVerb.Description =
"Connect two WebPart controls";
connectionsZone1.DisconnectVerb.Description =
"End the connection between two controls";
// Set properties for UI text strings.
connectionsZone1.ConfigureConnectionTitle =
"Configure";
connectionsZone1.ConnectToConsumerInstructionText =
"Choose a consumer connection point";
connectionsZone1.ConnectToConsumerText =
"Select a consumer for the provider to connect with";
connectionsZone1.ConnectToConsumerTitle =
"Send data to this consumer";
connectionsZone1.ConnectToProviderInstructionText =
"Choose a provider connection point";
connectionsZone1.ConnectToProviderText =
"Select a provider for the consumer to connect with";
connectionsZone1.ConnectToProviderTitle =
"Get data from this provider";
connectionsZone1.ConsumersInstructionText =
"WebPart controls that receive data from providers";
connectionsZone1.ConsumersTitle = "Consumer Controls";
connectionsZone1.GetFromText = "Receive from";
connectionsZone1.GetText = "Retrieve";
connectionsZone1.HeaderText =
"Create and Manage Connections";
connectionsZone1.InstructionText =
"Manage connections for the selected WebPart control";
connectionsZone1.InstructionTitle =
"Manage connections for consumers or providers";
connectionsZone1.NoExistingConnectionInstructionText =
"No connections exist. Click the above link to create "
+ "a connection.";
connectionsZone1.NoExistingConnectionTitle =
"No current connections";
connectionsZone1.ProvidersInstructionText =
"WebPart controls that send data to consumers";
connectionsZone1.ProvidersTitle = "Provider controls";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Connection Zone Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager runat="server" id="mgr">
<staticconnections>
<asp:webpartconnection id="connection1"
consumerconnectionpointid="ZipCodeConsumer"
consumerid="zipConsumer"
providerconnectionpointid="ZipCodeProvider"
providerid="zipProvider" />
</staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenucs id="menu1" runat="server" />
<div>
<asp:webpartzone id="WebPartZone1" runat="server">
<zonetemplate>
<aspsample:zipcodewebpart id="zipProvider" runat="server"
Title="Zip Code Provider" />
<aspsample:weatherwebpart id="zipConsumer" runat="server"
Title="Zip Code Consumer" />
</zonetemplate>
</asp:webpartzone>
<asp:connectionszone id="connectionsZone1" runat="server" >
<cancelverb text="Terminate" />
<closeverb text="Close Zone" />
<configureverb text="Configure" />
<connectverb text="Connect Controls" />
<disconnectverb text="End Connection" />
</asp:connectionszone>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ register tagprefix="uc1"
tagname="DisplayModeMenuVB"
src="~/displaymodemenuvb.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.VB.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_PreRender(ByVal sender As Object, _
ByVal e As System.EventArgs)
' Set properties for verbs.
connectionsZone1.CancelVerb.Description = _
"Terminates the connection process"
connectionsZone1.CloseVerb.Description = _
"Closes the connections UI"
connectionsZone1.ConfigureVerb.Description = _
"Configure the transformer for the connection"
connectionsZone1.ConnectVerb.Description = _
"Connect two WebPart controls"
connectionsZone1.DisconnectVerb.Description = _
"End the connection between two controls"
' Set properties for UI text strings.
connectionsZone1.ConfigureConnectionTitle = _
"Configure a new connection"
connectionsZone1.ConnectToConsumerInstructionText = _
"Choose a consumer connection point"
connectionsZone1.ConnectToConsumerText = _
"Select a consumer for the provider to connect with"
connectionsZone1.ConnectToConsumerTitle = _
"Send data to this consumer"
connectionsZone1.ConnectToProviderInstructionText = _
"Choose a provider connection point"
connectionsZone1.ConnectToProviderText = _
"Select a provider for the consumer to connect with"
connectionsZone1.ConnectToProviderTitle = _
"Get data from this provider"
connectionsZone1.ConsumersInstructionText = _
"WebPart controls that receive data from providers"
connectionsZone1.ConsumersTitle = "Consumer Controls"
connectionsZone1.GetFromText = "Receive from"
connectionsZone1.GetText = "Retrieve"
connectionsZone1.HeaderText = _
"Create and Manage Connections"
connectionsZone1.InstructionText = _
"Manage connections for the selected WebPart control"
connectionsZone1.InstructionTitle = _
"Manage connections for consumers or providers"
connectionsZone1.NoExistingConnectionInstructionText = _
"No connections exist. Click the above link to create " _
& "a connection."
connectionsZone1.NoExistingConnectionTitle = _
"No current connections"
connectionsZone1.ProvidersInstructionText = _
"WebPart controls that send data to consumers"
connectionsZone1.ProvidersTitle = "Provider controls"
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Connection Zone Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager runat="server" id="mgr">
<staticconnections>
<asp:webpartconnection id="connection1"
consumerconnectionpointid="ZipCodeConsumer"
consumerid="zipConsumer"
providerconnectionpointid="ZipCodeProvider"
providerid="zipProvider" />
</staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenuvb id="menu1" runat="server" />
<div>
<asp:webpartzone id="WebPartZone1" runat="server">
<zonetemplate>
<aspsample:zipcodewebpart id="zipProvider" runat="server"
Title="Zip Code Provider" />
<aspsample:weatherwebpart id="zipConsumer" runat="server"
Title="Zip Code Consumer" />
</zonetemplate>
</asp:webpartzone>
<asp:connectionszone id="connectionsZone1" runat="server" >
<cancelverb text="Terminate" />
<closeverb text="Close Zone" />
<configureverb text="Configure" />
<connectverb text="Connect Controls" />
<disconnectverb text="End Connection" />
</asp:connectionszone>
</div>
</form>
</body>
</html>
在瀏覽器中載入網頁。 使用 [ 顯示模式 ] 下拉式清單控件,將頁面切換為連線模式。 在 [郵遞區號 ] 控制器的動詞選單上, (動詞選單是由控件標題列中的向下箭號) ,單擊 [連接] 動詞命令。 控件 ConnectionsZone 隨即出現。 請注意,在聯機 UI 中,會出現 [ 結束連線 ] 按鈕;連接已在頁面的標記中宣告,因此控件已經連接。 按兩下 [結束連接],然後使用 [顯示模式 ] 控制項再次傳回頁面以流覽模式。 接下來,再次傳回頁面以連接模式,按兩下其中一個控件上的連接動詞,並請注意,連接UI現在會顯示超連結,讓您能夠形成控件之間的連線。 按兩下連結,然後使用連線 UI 來選取連接點並建立連線。
備註
使用 Web 元件控制項集,您可以讓兩個伺服器控制項形成連接並共享數據,其中一個控制項做為提供者,另一個控件做為數據的取用者。 這兩個控件可以是 WebPart 控件或任何其他類型的伺服器控件,前提是它們的設計目的是要處理連線,而且它們位於 WebPartZoneBase 區域中。 若要深入瞭解網頁元件連線,請參閱 WebPartConnection 和 ConnectionPoint 類別概觀,以及 Web 元件連線概觀。
如果必要控件和條件存在以形成網頁元件連線,則仍然需要實際連接控件。 伺服器控制元件之間有三種方式可以形成連線:在網頁中宣告連接、在程式代碼中建立連線,或將控制項新增 ConnectionsZone 至頁面,讓使用者可以視需要連接控件。 控件 ConnectionsZone 會產生UI,讓使用者能夠連接或中斷頁面上任何符合表單連接所需條件的伺服器控制件。 這是不需要形成連線的選擇性控件,但在您想要讓使用者控制哪些伺服器控制項已連線或中斷連線的情況下很有用。
控件 ConnectionsZone 是繼承自 ToolZone 基類的其中一個 Web 元件工具區域控制件。 做為工具區域, ConnectionsZone 只有當控件的網頁處於特定顯示模式時,控件才會被設計成可見。 在此情況下,當頁面上的控件的DisplayMode屬性值設定為) 時WebPartManager,頁面會 (處於這個模式的顯示模式命名為 ConnectDisplayMode connect 模式。 當使用者將頁面切換為連線模式之後,他們必須在其中一個伺服器控件的動詞功能表上按兩下連接動詞,然後連接UI就會變成可見。
做為網頁元件區域控件,控件 ConnectionsZone 是一種 WebZone 區域 (類型,繼承自 CompositeControl 類別) 設計為包含其他控制件。 一般而言, ConnectionsZone 區域具有與其他網頁元件工具區域相同的大部分元素:頁首、本文或內容區域,以及頁尾。 如需網頁元件區域和區域不同部分的完整討論,請參閱 WebZone 類別概觀。
重要
不同於大部分的其他網頁元件區域,請務必注意 ConnectionsZone ,區域不包含與其相關聯的唯一伺服器控件類型。 如需區域清單及其包含的相關控件,請參閱類別概觀中的 WebZone 圖表。 ConnectionsZone但區域不包含WebPartConnection控制件。 相反地,它會提供一個非常有限的用途,讓用戶連線或中斷連線頁面上某些 WebPartZoneBase 區域中的伺服器控制件。 控件中唯一 ConnectionsZone 包含的控件是標準 ASP.NET 伺服器控件,它是它在其 UI 中產生以形成連線的一部分。
當 ConnectionsZone 控件轉譯時,它會根據頁面上能夠形成連線的伺服器控件產生UI。 控件 ConnectionsZone 會決定頁面上區域中的伺服器控制項 WebPartZoneBase 是提供者、取用者、可用的連接點,以及伺服器控制項目前是否已連線或中斷連線,然後產生UI。
例如,假設有一個控件能夠成為提供者、一個WebPartWebPart控件能夠成為取用者、它們在頁面上宣告WebPartZone,而且目前已中斷連線。 當使用者切換頁面以連線模式,然後按兩下其中一個控件上的連接動詞時,控制件會產生具有連結的UI, ConnectionsZone 當單擊時,會顯示表單,讓使用者可以選擇建立連線的選項。 (如果先前已連接控件,則初始檢視會改為向用戶顯示按鈕,以中斷控件) 的連線。 在建立新連線的連線 UI 中,用戶會顯示哪些控件是提供者,而哪個控件是取用者。 下拉式清單控制件會出現在每個伺服器控制項下方,列出控件的可用 ConnectionPoint 物件。 從個別的下拉式清單中,用戶必須為提供者選取一個 ProviderConnectionPoint 物件, (判斷要與取用者共用哪些介面和數據) ,而每個取用者 (一個 ConsumerConnectionPoint 物件,以判斷取用者將取用哪些介面和數據) 連線至提供者。
注意
在 Web 元件控制項設定預設實作中,一個提供者可以連線到許多取用者,但取用者只能有一個提供者。
若要使用 ConnectionsZone 控件,您可以在網頁上的 元素內 <form>
宣告它, (但不能巢狀在另一個 Web 元件區域元素內) 、使用 <asp:connectionszone>
元素,或以程式設計方式將它新增至頁面。 如果您在頁面中宣告元素,不同於其他網頁元件區域,則無法在元素的 <asp:connectionszone>
標記之間宣告任何其他類型的伺服器控制件。 您可以宣告與其本身屬性和樣式詳細數據相關的元素,但它是獨立專案,而且不是可宣告其他伺服器控制件的範本控制件。
注意
為了改善輔助功能, ConnectionsZone 控件會在 元素內 <fieldset>
轉譯。 元素 <fieldset>
會將用於在控件中 ConnectionsZone 建立連線的相關控件集分組,並協助在視覺使用者代理程式 (等視覺使用者代理程式之間的索引卷標式導覽,例如一般網頁瀏覽器) 和語音導向使用者代理程式, (例如螢幕閱讀軟體) 。
控件 ConnectionsZone 有一些用於轉譯連線 UI 的屬性。 其中一組屬性包含數個動詞--僅適用於連線--在 UI 中執行動作: ConfigureVerb、 ConnectVerb和 DisconnectVerb。 一組大型屬性,特別用於連接區域 UI,包含顯示在各種位置的文字字串 (或在某些情況下,例如當 UI 中) 發生錯誤時:ConfigureConnectionTitle、、、InstructionTitleNoExistingConnectionInstructionTextGetTextNewConnectionErrorMessageConnectToProviderTextConsumersInstructionTextConnectToProviderTitleConnectToProviderInstructionTextConnectToConsumerTextConsumersTitleGetFromTextNoExistingConnectionTitleExistingConnectionErrorMessageConnectToConsumerInstructionTextProvidersInstructionTextProvidersTitleConnectToConsumerTitle、 SendText和 。SendToText 類別ConnectionsZone也包含其他網頁元件區域中找到的一些通用屬性:CancelVerb、CloseVerb、、、Display、EmptyZoneText、 HeaderTextInstructionText和 PartChromeType。 最後,WebPartToConnect屬性對 類別而言是唯一的,參考起始連接的控件 (這是使用者在其動詞功能表中按兩下連接動詞動詞的控件,這也是控件SelectedWebPart屬性中所WebPartManager參考的控件) 。
類別 ConnectionsZone 也有一些方法,這些方法全都是從基類繼承和覆寫,其中大部分都是來自基底 Web 元件區域類別。 如需詳細資訊,請參閱個別方法。
給繼承者的注意事項
ConnectionsZone如果開發人員想要變更其行為或它提供來使用連線的預設UI,則可以擴充類別。
建構函式
ConnectionsZone() |
初始化 ConnectionsZone 類別的新執行個體。 |
屬性
AccessKey |
取得或設定便捷鍵 (Access Key),可讓您快速巡覽至 Web 伺服器控制項。 (繼承來源 WebControl) |
Adapter |
針對控制項取得瀏覽器的特定配置器。 (繼承來源 Control) |
AppRelativeTemplateSourceDirectory |
取得或設定包含了此控制項之 Page 或 UserControl 物件的相對應用程式虛擬目錄。 (繼承來源 Control) |
AssociatedDisplayModes |
取得與特定 WebPartDisplayMode 區域相關聯的 ToolZone 物件集合。 (繼承來源 ToolZone) |
Attributes |
取得任意屬性 (Attribute) 的集合 (只供呈現),不與控制項上的屬性 (Property) 對應。 (繼承來源 WebControl) |
BackColor |
取得或設定 Web 伺服器控制項的背景色彩。 (繼承來源 WebControl) |
BackImageUrl |
取得或設定區域背景影像的 URL。 (繼承來源 WebZone) |
BindingContainer |
取得包含了此控制項之資料繫結的控制項。 (繼承來源 Control) |
BorderColor |
取得或設定 Web 控制項的框線色彩。 (繼承來源 WebControl) |
BorderStyle |
取得或設定 Web 伺服器控制項的框線樣式。 (繼承來源 WebControl) |
BorderWidth |
取得或設定 Web 伺服器控制項的框線寬度。 (繼承來源 WebControl) |
CancelVerb |
取得 WebPartVerb 物件的參考,這個物件可讓使用者取消建立連接的程序。 |
ChildControlsCreated |
取得值,指出是否已經建立伺服器控制項的子控制項。 (繼承來源 Control) |
ClientID |
取得 ASP.NET 所產生之 HTML 標記的控制項識別碼。 (繼承來源 Control) |
ClientIDMode |
取得或設定用來產生 ClientID 屬性值的演算法。 (繼承來源 Control) |
ClientIDSeparator |
取得字元值,表示在 ClientID 屬性中所使用的分隔字元。 (繼承來源 Control) |
CloseVerb |
取得 WebPartVerb 物件的參考,該物件可讓使用者關閉 ConnectionsZone 控制項所建立的連接使用者介面 (UI)。 |
ConfigureConnectionTitle |
取得或設定文字,此文字會顯示為 ConnectionsZone 控制項所建立之連接使用者介面 (UI) 子區段的標題。 |
ConfigureVerb |
取得 WebPartVerb 物件的參考,這個物件是用來開啟連接使用者介面 (UI) 中的組態檢視。 |
ConnectToConsumerInstructionText |
取得或設定連接使用者介面 (UI) 區段中所顯示的指示文字,在這個區段中使用者可以選取提供者將連接到的消費者連接點。 |
ConnectToConsumerText |
取得或設定超連結的文字,使用者按一下此超連結時,會開啟可供選擇連接之消費者控制項的檢視。 |
ConnectToConsumerTitle |
取得或設定連接使用者介面 (UI) 的區段標題文字,在此區段中使用者可以選取要連接的特定消費者。 |
ConnectToProviderInstructionText |
取得或設定連接使用者介面 (UI) 區段中所顯示的指示文字,在這個區段中使用者可以選取消費者將連接到的提供者連接點。 |
ConnectToProviderText |
取得或設定超連結的文字,使用者按一下此超連結時,會開啟可供選擇連接之提供者控制項的檢視。 |
ConnectToProviderTitle |
取得或設定連接使用者介面 (UI) 的區段標題文字,在此區段中使用者可以選取要連接的特定提供者。 |
ConnectVerb |
取得 WebPartVerb 物件的參考,這個物件可讓兩個 WebPart 控制項建立連接。 |
ConsumersInstructionText |
當連接已存在時,取得或設定連接使用者介面 (UI) 的消費者區段中所顯示的指示文字。 |
ConsumersTitle |
當連接已存在時,取得或設定連接使用者介面 (UI) 的消費者區段上方所顯示的標題。 |
Context |
取得與目前 Web 要求的伺服器控制項關聯的 HttpContext 物件。 (繼承來源 Control) |
Controls |
取得表示 ControlCollection 中之子控制項的 CompositeControl 物件。 (繼承來源 CompositeControl) |
ControlStyle |
取得 Web 伺服器控制項的樣式。 這個屬性主要由控制項開發人員使用。 (繼承來源 WebControl) |
ControlStyleCreated |
取得值,指出 Style 物件是否已經為 ControlStyle 屬性建立。 這個屬性主要由控制項開發人員使用。 (繼承來源 WebControl) |
CssClass |
取得或設定用戶端上 Web 伺服器控制項所呈現的階層式樣式表 (CSS)。 (繼承來源 WebControl) |
DataItemContainer |
如果命名容器實作 IDataItemContainer,則取得命名容器的參考。 (繼承來源 Control) |
DataKeysContainer |
如果命名容器實作 IDataKeysControl,則取得命名容器的參考。 (繼承來源 Control) |
DesignMode |
取得值,指出控制項是否正用於設計介面上。 (繼承來源 Control) |
DisconnectVerb |
取得 WebPartVerb 物件的參考,這個物件可讓使用者中斷兩個 WebPart 控制項之間的連接。 |
Display |
取得值,其中該值指出目前是否顯示 ToolZone 控制項。 |
EditUIStyle |
取得 ToolZone 控制項包含之控制項的樣式屬性。 (繼承來源 ToolZone) |
EmptyZoneText |
如果網頁上控制項不足,無法建立連接時,取得或設定空 ConnectionsZone 控制項中所顯示的文字訊息。 |
EmptyZoneTextStyle |
取得空區域中替代符號文字的樣式屬性。 (繼承來源 WebZone) |
Enabled |
取得或設定值,指出 Web 伺服器控制項是否啟用。 (繼承來源 WebControl) |
EnableTheming |
取得或設定值,指出佈景主題是否套用至此控制項。 (繼承來源 WebControl) |
EnableViewState |
取得或設定值,該值表示伺服器控制項是否對要求的用戶端而言保持其檢視狀態,以及它包含的任何子控制項狀態。 (繼承來源 Control) |
ErrorStyle |
取得呈現錯誤訊息的樣式屬性,無法載入或建立 WebPart 控制項時會顯示該錯誤訊息。 (繼承來源 WebZone) |
Events |
取得控制項事件處理常式委派 (Delegate) 的清單。 這個屬性是唯讀的。 (繼承來源 Control) |
ExistingConnectionErrorMessage |
當現有連接上有錯誤或警告時,取得或設定連接使用者介面 (UI) 中所顯示的訊息文字。 |
Font |
取得與 Web 伺服器控制項關聯的字型屬性。 (繼承來源 WebControl) |
FooterStyle |
取得區域頁尾區內容的樣式屬性。 (繼承來源 WebZone) |
ForeColor |
取得或設定 Web 伺服器控制項的前景色彩 (通常是文字的色彩)。 (繼承來源 WebControl) |
GetFromText |
取得或設定連接使用者介面 (UI) 區段中所顯示的文字,此文字位在消費者將從中擷取資料的具名提供者之前。 |
GetText |
取得或設定連接使用者介面 (UI) 區段中所顯示的文字,此文字位在將從提供者接收資料的具名消費者之前。 |
HasAttributes |
取得值,指出控制項是否已經設定屬性。 (繼承來源 WebControl) |
HasChildViewState |
取得值,指出目前伺服器控制項的子控制項是否有任何已儲存的檢視狀態設定。 (繼承來源 Control) |
HasFooter |
取得值,表示區域是否具有頁尾區。 (繼承來源 WebZone) |
HasHeader |
取得值,表示區域是否具有頁首區。 (繼承來源 WebZone) |
HeaderCloseVerb |
取得 WebPartVerb 控制項頁首中 ToolZone 物件的參考,該物件用於關閉控制項。 (繼承來源 ToolZone) |
HeaderStyle |
取得區域頁首區內容的樣式屬性。 (繼承來源 WebZone) |
HeaderText |
取得或設定出現在 ConnectionsZone 控制項所建立之連接使用者介面 (UI) 頂端的標頭文字。 |
HeaderVerbStyle |
取得顯示於 ToolZone 控制項中所有頁首動詞命令的樣式屬性。 (繼承來源 ToolZone) |
Height |
取得或設定 Web 伺服器控制項的高度。 (繼承來源 WebControl) |
ID |
取得或設定指派給伺服器控制項的程式設計識別項。 (繼承來源 Control) |
IdSeparator |
取得用來分隔控制項識別項的字元。 (繼承來源 Control) |
InstructionText |
取得或設定文字,在管理現有連接之連接使用者介面 (UI) 區段中,選取之控制項的一般指示使用此文字。 |
InstructionTextStyle |
取得顯示在 ToolZone 控制項頂端之指示文字的樣式屬性。 (繼承來源 ToolZone) |
InstructionTitle |
取得或設定文字,在管理現有連接的連接使用者介面 (UI) 中,對消費者或提供者控制項可執行之動作的一般描述會使用此文字。 |
IsChildControlStateCleared |
取得值,指出這個控制項中所包含的控制項是否有控制項狀態。 (繼承來源 Control) |
IsEnabled |
取得值,指出是否啟用控制項。 (繼承來源 WebControl) |
IsTrackingViewState |
取得值,指出伺服器控制項是否正在儲存檢視狀態的變更。 (繼承來源 Control) |
IsViewStateEnabled |
取得值,指出這個控制項是否已啟用檢視狀態。 (繼承來源 Control) |
LabelStyle |
取得標籤內容的樣式屬性,該標籤顯示在 ToolZone 控制項中的編輯控制項旁。 衍生的 ToolZone 控制項 (例如 CatalogZone 和 EditorZone) 會將樣式套用至標籤。 (繼承來源 ToolZone) |
LoadViewStateByID |
取得值,指出控制項是否依 ID (而不是索引) 參與載入其檢視狀態。 (繼承來源 Control) |
NamingContainer |
取得伺服器控制項命名容器的參考,其建立唯一命名空間,在具有相同 ID 屬性值的伺服器控制項之間作區別。 (繼承來源 Control) |
NewConnectionErrorMessage |
當使用者嘗試建立的新連接上有錯誤或警告時,取得或設定連接使用者介面 (UI) 中所顯示的訊息文字。 |
NoExistingConnectionInstructionText |
當 Web 組件控制項沒有現有連接時,取得或設定在連接使用者介面 (UI) 主體中出現的指示文字。 |
NoExistingConnectionTitle |
當 Web 組件控制項沒有現有連接時,取得或設定在連接使用者介面 (UI) 主體中出現的標題文字。 |
Padding |
取得或設定表格的儲存格填補屬性,該表格包含區域的 WebPart 控制項。 (繼承來源 WebZone) |
Page |
取得含有伺服器控制項的 Page 執行個體的參考。 (繼承來源 Control) |
Parent |
在網頁控制階層架構中取得伺服器控制項之父控制項的參考。 (繼承來源 Control) |
PartChromePadding |
取得或設定 WebPart 控制項的內容與此控制項的框線之間的距離。 (繼承來源 WebZone) |
PartChromeStyle |
取得樣式特性,該樣式特性套用至區域中 Web 組件控制項的框線。 (繼承來源 WebZone) |
PartChromeType |
取得或設定架構 ConnectionsZone 控制項中所包含之伺服器控制項的框線類型。 |
PartStyle |
取得樣式特性,該樣式特性套用至區域中每個 Web 組件控制項的框線和內容。 (繼承來源 WebZone) |
PartTitleStyle |
取得區域中每個 Web 組件控制項標題列內容的樣式屬性。 (繼承來源 WebZone) |
ProvidersInstructionText |
當連接已存在時,取得或設定連接使用者介面 (UI) 的提供者區段中所顯示的指示文字。 |
ProvidersTitle |
當連接已存在時,取得或設定連接使用者介面 (UI) 的提供者區段上方所顯示的標題。 |
RenderClientScript |
取得值,指出是否在 Web 組件頁面上呈現用戶端指令碼。 (繼承來源 WebZone) |
RenderingCompatibility |
取得值,這個值會指定將與呈現 HTML 相容的 ASP.NET 版本。 (繼承來源 Control) |
SendText |
取得或設定連接使用者介面 (UI) 區段中所顯示的文字,此文字位在將傳送資料至消費者的具名提供者之前。 |
SendToText |
取得或設定連接使用者介面 (UI) 區段中所顯示的文字,此文字位在提供者將傳送資料至的具名消費者之前。 |
Site |
當呈現在設計介面上時,取得裝載目前控制項之容器的資訊。 (繼承來源 Control) |
SkinID |
取得或設定要套用至控制項的面板。 (繼承來源 WebControl) |
Style |
取得文字屬性的集合,將呈現為 Web 伺服器控制項的外部標記上的樣式屬性。 (繼承來源 WebControl) |
SupportsDisabledAttribute |
取得值,這個值表示當控制項的 |
TabIndex |
取得或設定 Web 伺服器控制項的定位索引。 (繼承來源 WebControl) |
TagKey |
取得對應至這個 Web 伺服器控制項的 HtmlTextWriterTag 值。 這個屬性主要由控制項開發人員使用。 (繼承來源 WebZone) |
TagName |
取得控制項標記的名稱。 這個屬性主要由控制項開發人員使用。 (繼承來源 WebControl) |
TemplateControl |
取得或設定包含了此控制項之樣板的參考。 (繼承來源 Control) |
TemplateSourceDirectory |
取得包含目前伺服器控制項的 Page 或 UserControl 的虛擬目錄。 (繼承來源 Control) |
ToolTip |
取得或設定當滑鼠指標停留在 Web 伺服器控制項時顯示的文字。 (繼承來源 WebControl) |
UniqueID |
取得伺服器控制項唯一的、符合階層架構的識別項。 (繼承來源 Control) |
ValidateRequestMode |
取得或設定值,指出控制項是否對來自瀏覽器的用戶端輸入檢查潛在的危險值。 (繼承來源 Control) |
VerbButtonType |
取得或設定用於表示區域動詞命令的按鈕類型。 (繼承來源 WebZone) |
VerbStyle |
取得使用者介面 (UI) 動詞命令的樣式屬性,該動詞命令與區域中的 Web 組件控制項相關聯。 (繼承來源 WebZone) |
ViewState |
取得狀態資訊的字典,允許您在相同網頁的多個要求之間,儲存和還原伺服器控制項的檢視狀態。 (繼承來源 Control) |
ViewStateIgnoresCase |
取得值,指出 StateBag 物件是否不區分大小寫。 (繼承來源 Control) |
ViewStateMode |
取得或設定這個控制項的檢視狀態模式。 (繼承來源 Control) |
Visible |
取得或設定值,指出伺服器控制項是否要呈現為網頁上的使用者介面 (UI) 項目。 (繼承來源 ToolZone) |
WebPartManager |
取得 WebPartManager 控制項的參考,該控制項與 Web 組件頁面上的 WebZone 控制項執行個體相關聯。 (繼承來源 WebZone) |
WebPartToConnect |
取得目前選取的 WebPart 控制項以連接。 |
Width |
取得或設定 Web 伺服器控制項的寬度。 (繼承來源 WebControl) |
方法
事件
DataBinding |
發生於伺服器控制項繫結至資料來源時。 (繼承來源 Control) |
Disposed |
發生於伺服器控制項從記憶體釋放時,這是在要求 ASP.NET 網頁時,伺服器控制項生命週期的最後階段。 (繼承來源 Control) |
Init |
發生於初始化伺服器控制項時,是其生命週期中的第一個步驟。 (繼承來源 Control) |
Load |
發生於載入伺服器控制項至 Page 物件時。 (繼承來源 Control) |
PreRender |
在 Control 物件載入之後但在呈現之前發生。 (繼承來源 Control) |
Unload |
發生於伺服器控制項從記憶體卸載時。 (繼承來源 Control) |
明確介面實作
擴充方法
FindDataSourceControl(Control) |
傳回與指定之控制項的資料控制項相關聯的資料來源。 |
FindFieldTemplate(Control, String) |
傳回在指定之控制項的命名容器中所指定資料行的欄位樣板。 |
FindMetaTable(Control) |
傳回包含資料控制項的中繼資料表物件。 |
GetDefaultValues(INamingContainer) |
取得所指定資料控制項的預設值集合。 |
GetMetaTable(INamingContainer) |
取得所指定資料控制項中的資料表中繼資料。 |
SetMetaTable(INamingContainer, MetaTable) |
設定所指定資料控制項中的資料表中繼資料。 |
SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
設定所指定資料控制項的資料表中繼資料及預設值對應。 |
SetMetaTable(INamingContainer, MetaTable, Object) |
設定所指定資料控制項的資料表中繼資料及預設值對應。 |
TryGetMetaTable(INamingContainer, MetaTable) |
判斷資料表中繼資料是否可供使用。 |
EnableDynamicData(INamingContainer, Type) |
針對指定的資料控制項啟用動態資料行為。 |
EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
針對指定的資料控制項啟用動態資料行為。 |
EnableDynamicData(INamingContainer, Type, Object) |
針對指定的資料控制項啟用動態資料行為。 |