WebPartManager.ConnectDisplayMode 필드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자가 WebPart 컨트롤 간의 연결을 관리할 수 있도록 특수 UI(사용자 인터페이스)를 표시하는 데 사용되는 디스플레이 모드를 나타냅니다. 이 필드는 읽기 전용입니다.
public: static initonly System::Web::UI::WebControls::WebParts::WebPartDisplayMode ^ ConnectDisplayMode;
public static readonly System.Web.UI.WebControls.WebParts.WebPartDisplayMode ConnectDisplayMode;
staticval mutable ConnectDisplayMode : System.Web.UI.WebControls.WebParts.WebPartDisplayMode
Public Shared ReadOnly ConnectDisplayMode As WebPartDisplayMode
필드 값
예제
다음 코드 예제에서는 모드의 사용을 보여 줍니다 ConnectDisplayMode .
이 코드 예제는 세 부분으로 구성 합니다.
연결을 형성할 수 있는 인터페이스 및 사용자 지정 WebPart 컨트롤을 포함하는 원본 파일입니다.
연결 UI를 제공하고 모드를 ConnectDisplayMode 사용하는 방법을 보여 주는 웹 페이지입니다.
예제를 실행하는 방법에 대한 설명입니다.
코드 예제의 첫 번째 부분은 인터페이스와 연결할 수 있도록 설계된 두 개의 사용자 지정 WebPart 컨트롤이 포함된 소스 파일입니다. 코드 예제를 실행하려면 이 소스 코드를 컴파일해야 합니다. 명시적으로 컴파일하고 결과 어셈블리를 웹 사이트의 Bin 폴더 또는 전역 어셈블리 캐시에 넣을 수 있습니다. 또는 런타임에 동적으로 컴파일되는 사이트의 App_Code 폴더에 소스 코드를 배치할 수 있습니다. 이 코드 예제에서는 동적 컴파일 방법을 사용합니다. 컴파일 방법을 보여 주는 연습은 연습: 사용자 지정 웹 서버 컨트롤 개발 및 사용을 참조하세요.
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", "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", "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", "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", "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
예제의 두 번째 부분은 사용자 지정 컨트롤을 호스트하는 웹 페이지입니다. 페이지의 서버 <script>
태그 내에는 드롭다운 목록을 페이지에서 사용할 수 있는 표시 모드로 채우는 몇 가지 방법이 있습니다. 사용자는 드롭다운 목록에서 이러한 항목을 선택하여 페이지의 표시 모드를 변경할 수 있습니다. 사용 가능한 표시 모드 중 하나는 페이지 태그에 요소가 선언되어 있기 때문에 <asp:connectionszone>
디스플레이 모드 연결입니다. 이 요소에는 다른 자식 요소가 포함되어 있지 않습니다. 사용자에게 연결 관리 UI를 사용하도록 설정하기 위해서만 존재합니다.
이 ConnectDisplayMode 예제에서는 모드가 두 위치에 표시됩니다. 먼저 메서드에서 코드가 속성에서 Page_Init
참조된 컬렉션을 반복하므로 연결 표시 모드가 표시 모드의 드롭다운 목록에 추가됩니다 SupportedDisplayModes . 둘째, 메서드는 Page_PreRender
페이지의 현재 표시 모드를 확인하고 현재 모드가 ConnectDisplayMode이면 컨트롤에 Label 메시지가 표시됩니다.
<%@ Page Language="C#" %>
<%@ 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_Init(object sender, EventArgs e)
{
foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes)
{
string modeName = mode.Name;
if (mode.IsEnabled(mgr))
{
ListItem item = new ListItem(modeName, modeName);
DisplayModeDropdown.Items.Add(item);
}
}
}
protected void DisplayModeDropdown_SelectedIndexChanged(object
sender, EventArgs e)
{
String selectedMode = DisplayModeDropdown.SelectedValue;
WebPartDisplayMode mode =
mgr.SupportedDisplayModes[selectedMode];
if (mode != null)
mgr.DisplayMode = mode;
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
Label1.Visible = true;
else
Label1.Visible = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server" />
<asp:Label ID="Label1" runat="server"
Text="Currently in Connect Display Mode"
Font-Bold="true"
Font-Size="125%" />
<br />
<asp:DropDownList ID="DisplayModeDropdown"
runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged=
"DisplayModeDropdown_SelectedIndexChanged">
</asp:DropDownList>
<hr />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ 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_Init(ByVal sender As Object, _
ByVal e As EventArgs)
Dim mode As WebPartDisplayMode
For Each mode In mgr.SupportedDisplayModes
Dim modeName As String = mode.Name
If mode.IsEnabled(mgr) Then
Dim item As ListItem = New ListItem(modeName, modeName)
DisplayModeDropdown.Items.Add(item)
End If
Next
End Sub
Protected Sub DisplayModeDropdown_SelectedIndexChanged(ByVal _
sender As Object, ByVal e As EventArgs)
Dim selectedMode As String = _
DisplayModeDropdown.SelectedValue
Dim mode As WebPartDisplayMode = _
mgr.SupportedDisplayModes(selectedMode)
If mode IsNot Nothing Then
mgr.DisplayMode = mode
End If
End Sub
Protected Sub Page_PreRender(ByVal sender As Object, _
ByVal e As System.EventArgs)
If mgr.DisplayMode.Equals(WebPartManager.ConnectDisplayMode) Then
Label1.Visible = True
Else
Label1.Visible = False
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server" />
<asp:Label ID="Label1" runat="server"
Text="Currently in Connect Display Mode"
Font-Bold="true"
Font-Size="125%" />
<br />
<asp:DropDownList ID="DisplayModeDropdown"
runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged=
"DisplayModeDropdown_SelectedIndexChanged">
</asp:DropDownList>
<hr />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server" />
</div>
</form>
</body>
</html>
브라우저에서 페이지를 로드한 후 드롭다운 목록을 클릭하고 연결을 선택하여 페이지를 연결 표시 모드로 전환합니다. 페이지가 연결 표시 모드에 있음을 알리는 메시지가 나타납니다. 이제 컨트롤 중 WebPart 하나의 제목 표시줄에서 동사 메뉴(화살표 기호)를 클릭한 다음 동사 메뉴에서 연결을 클릭합니다. 연결 UI가 표시되면 링크를 클릭하여 연결을 만듭니다. 표시되는 연결 UI 내에서 드롭다운 목록을 사용하고, 연결에 참여할 다른 컨트롤을 선택하고, 연결 단추를 클릭합니다. 연결이 설정됩니다. 닫기 단추를 클릭한 다음 페이지 맨 위에 있는 드롭다운 목록을 사용하여 페이지를 반환하여 표시 모드를 찾습니다.
설명
ConnectDisplayMode 필드는 컨트롤에 의해 생성되고 포함된 사용자 지정 WebPartDisplayMode 개체를 참조합니다WebPartManager. 이 개체는 정적 개체이므로 컨트롤 인스턴스 없이 클래스를 WebPartManager 통해 직접 참조할 수 있습니다.
사용자가 웹 페이지의 컨트롤 간 WebPart 연결을 관리하려는 경우 페이지에 영역이 선언된 경우 ConnectionsZone 페이지를 모드로 ConnectDisplayMode 전환할 수 있습니다. 연결 표시 모드는 연결 또는 연결 끊기 컨트롤을 포함하고 기존 연결의 세부 정보를 편집하는 기능을 포함하여 연결을 관리하기 위한 특수 UI를 표시합니다.
웹 파트 컨트롤 집합에서 제공하는 UI를 사용하여 연결을 관리하는 기능을 사용자에게 제공하려면 페이지 태그에서 요소를 선언 <asp:connectionszone>
해야 합니다. 다른 유형의 WebZone 영역에 대한 요소와 달리 이 요소 내에 다른 태그를 추가할 필요가 없습니다. 요소 자체를 선언하기만 하면 됩니다.
적용 대상
추가 정보
.NET