이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

ConnectionProviderAttribute 클래스

웹 파트 연결에서 공급자 역할을 하는 서버 컨트롤의 콜백 메서드를 식별하고 개발자가 공급자의 연결 지점에 대한 세부 사항을 지정할 수 있도록 합니다.

네임스페이스: System.Web.UI.WebControls.WebParts
어셈블리: System.Web(system.web.dll)

[AttributeUsageAttribute(AttributeTargets.Method)] 
public class ConnectionProviderAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */ 
public class ConnectionProviderAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method) 
public class ConnectionProviderAttribute extends Attribute
적용할 수 없음.

웹 파트 연결은 WebPartZoneBase 영역에 있으며 한 컨트롤에서 다른 컨트롤로 전달되는 인터페이스 인스턴스를 통해 데이터를 공유하는 두 개의 서버 컨트롤로 구성됩니다. 인터페이스 인스턴스를 제공하는 컨트롤을 공급자라고 하며 인터페이스 인스턴스를 받고 데이터를 처리하거나 표시하는 컨트롤을 소비자라고 합니다. 연결에 대한 자세한 내용은 WebPartConnection 클래스 및 웹 파트 연결 개요를 참조하십시오.

WebPart 컨트롤이나 모든 형식의 서버 컨트롤 또는 사용자 정의 컨트롤이 연결의 공급자 컨트롤이 될 수 있습니다. 단, 해당 컨트롤에는 콜백 메서드로 지정된 메서드가 있어야 합니다. 콜백 메서드는 연결 중 호출되며, 이 메서드의 용도는 소비자에게 데이터가 들어 있는 인터페이스 인스턴스를 반환하는 것입니다. 공급자의 콜백 메서드로 사용되는 메서드를 지정하려면 해당 메서드에 ConnectionProviderAttribute 메타데이터 요소를 추가해야 합니다. 이 요소는 ConnectionProviderAttribute 클래스를 기반으로 합니다.

ConnectionProviderAttribute 개체를 사용하여 공급자의 콜백 메서드를 지정할 뿐 아니라 공급자의 연결 지점에 대한 세부 사항도 지정할 수 있습니다. 공급자 연결 지점은 연결을 설정하는 데 필요한 공급자에 대한 모든 세부 사항을 캡슐화하는 ProviderConnectionPoint 클래스의 인스턴스입니다. 이러한 세부 사항에는 공급자의 컨트롤 형식, 공급자가 여러 소비자와 동시에 연결할 수 있는지 여부, 공급자가 소비자에게 제공할 수 있는 인터페이스 형식, 콜백 메서드에 대한 세부 사항, UI(사용자 인터페이스)에서 공급자 연결 지점을 나타내는 표시 이름 등이 포함됩니다. 모든 웹 파트 연결에는 공급자 컨트롤과 관련된 공급자 연결 지점이 포함되어 있습니다.

공급자의 콜백 메서드에 ConnectionProviderAttribute 메타데이터 요소를 추가하면 이 요소를 사용하여 공급자 연결 지점에 대한 세부 사항도 지정할 수 있습니다. 이러한 세부 사항에는 연결 지점의 표시 이름(DisplayName 속성 참조), 공급자가 동시에 여러 소비자와 연결할 수 있는지 여부(AllowsMultipleConnections 속성 참조), 연결 지점의 ID(ID 속성 참조), 공급자가 사용하는 연결 지점의 형식(ConnectionPointType 속성 참조) 등이 포함됩니다. ConnectionProviderAttribute 클래스의 생성자에 대한 네 개의 오버로드 각각에는 이 클래스의 새 인스턴스를 만들 때 이러한 하나 이상의 연결 지점 속성에 대한 값을 지정하기 위한 매개 변수가 포함되어 있습니다. 공급자 연결 지점의 속성은 대부분 프로그래밍 방식으로도 설정할 수 있습니다. ConnectionProviderAttribute 요소를 사용하여 이러한 속성을 설정하는 것은 선택적입니다.

참고:

공급자의 콜백 메서드에 ConnectionProviderAttribute 메타데이터 요소를 추가할 때 항상 지정해야 하는 필수 매개 변수는 displayName 매개 변수뿐입니다. 자세한 내용은 ConnectionProviderAttribute(String) 생성자 오버로드를 참조하십시오. 이 매개 변수의 값은 DisplayName 속성에 할당되며, 사용자가 ConnectionsZone 컨트롤에 의해 만들어진 연결 UI를 열면 해당 UI에서 이 표시 이름이 공급자 연결 지점을 나타냅니다. 공급자 컨트롤에 콜백 메서드를 여러 개 지정하면 선택할 수 있는 연결 지점이 여러 개가 되므로 각 콜백 메서드에 ConnectionProviderAttribute 메타데이터 요소를 추가할 때는 각 공급자 연결 지점이 알려진 고유 식별자를 갖도록 id 매개 변수의 값도 지정해야 합니다.

다음 코드 예제에서는 공급자 컨트롤의 콜백 메서드에 ConnectionProviderAttribute 메타데이터 요소를 선언하여 ConnectionProviderAttribute 클래스를 사용하는 방법을 보여 줍니다. 생성자의 가장 단순한 오버로드가 사용되고 displayName 매개 변수 값만 제공됩니다.

[ConnectionProvider("Row")]
public IWebPartRow GetConnectionInterface()
{
    return new RowProviderWebPart();
}

다음 코드 예제에서는 WebPartConnection 클래스를 사용하여 두 개의 웹 파트 컨트롤 사이에 기본 정적 연결을 만드는 방법을 보여 줍니다. 공급자 및 소비자 코드 파일은 .aspx 페이지가 들어 있는 응용 프로그램 폴더 아래의 App_Code 폴더에 두어야 합니다.

첫 번째 예제에서는 공급자 역할을 하는 클래스를 보여 줍니다. 메서드로는 ConnectionProviderAttribute 메타데이터 요소가 있는 콜백 메서드가 지정되어 있습니다.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//This sample code creates a Web Parts control that acts as a provider of row data.
namespace My 
{
    public sealed class RowProviderWebPart : WebPart, IWebPartRow 
	{

        private DataTable _table;

        public RowProviderWebPart() 
		{
            _table = new DataTable();

            DataColumn col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Name";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Address";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(int);
            col.ColumnName = "ZIP Code";
            _table.Columns.Add(col);

            DataRow row = _table.NewRow();
            row["Name"] = "John Q. Public";
            row["Address"] = "123 Main Street";
            row["ZIP Code"] = 98000;
            _table.Rows.Add(row);
        }
        [ConnectionProvider("Row")]
        public IWebPartRow GetConnectionInterface()
		{
            return new RowProviderWebPart();
        }
        public PropertyDescriptorCollection Schema 
		{
            get {
                return TypeDescriptor.GetProperties(_table.DefaultView[0]);
				}
        }
		public void GetRowData(RowCallback callback)
		{
			callback(_table.Rows);
		}
    }
}

두 번째 예제에서는 소비자 역할을 하는 클래스를 보여 줍니다.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
// This sample code creates a Web Parts control that acts as a consumer of row data.
namespace My 
{

    public sealed class RowConsumerWebPart : WebPart {
        private IWebPartRow _provider;
		private ICollection _tableData;
	
			private void GetRowData(object rowData)
			{
				_tableData = (ICollection)rowData;
			}

		protected override void OnPreRender(EventArgs e)
		{
				if (_provider != null)
				{
					_provider.GetRowData(new RowCallback(GetRowData));
				}
		}


        protected override void RenderContents(HtmlTextWriter writer) {
            if (_provider != null) {
                PropertyDescriptorCollection props = _provider.Schema;
				int count = 0;
                if (props != null && props.Count > 0 && _tableData != null) {
                    foreach (PropertyDescriptor prop in props) 
					{
						foreach (DataRow o in _tableData)
						{
							writer.Write(prop.DisplayName + ": " + o[count]);
							writer.WriteBreak();
							writer.WriteLine();
							count = count + 1;
						}
                    }
                }
                else {
                    writer.Write("No data");
                }
            }
            else {
                writer.Write("Not connected");
            }
        }
        [ConnectionConsumer("Row")]
        public void SetConnectionInterface(IWebPartRow provider) 
		{
            _provider = provider;
        }
         }
    
    }
//}

마지막 예제에서는 두 개의 컨트롤이 들어 있는 ASP.NET 페이지를 보여 줍니다.

<%@ page language="C#" %>
<%@ register TagPrefix="my" Namespace="My" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IRow Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- A static or dynamic connection is required to link two Web Parts controls. --->
        <asp:webpartmanager ID="WebPartManager1" runat="server">
            <staticconnections>
                <asp:webpartconnection ID="wp1" ProviderID="provider1" ConsumerID="consumer1" >
                </asp:webpartconnection>
            </staticconnections>
        </asp:webpartmanager>
       
        <asp:webpartzone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <!-- The following two lines specify the two connected controls. --->
                <my:RowProviderWebPart ID="provider1" runat="server" ToolTip="Row Provider Control" />
                <my:RowConsumerWebPart ID="consumer1" runat="server" ToolTip="Row Consumer Control" />
            </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>

  • AspNetHostingPermission  호스팅된 환경에서 작업하는 데 필요한 권한입니다. 요청 값: LinkDemand, 권한 값: Minimal
  • AspNetHostingPermission  호스팅된 환경에서 작업하는 데 필요한 권한입니다. 요청 값: InheritanceDemand, 권한 값: Minimal
System.Object
   System.Attribute
    System.Web.UI.WebControls.WebParts.ConnectionProviderAttribute
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0은 Windows Vista, Microsoft Windows XP SP2 및 Windows Server 2003 SP1에서 지원됩니다.

.NET Framework

3.0, 2.0에서 지원
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
© 2013 Microsoft. All rights reserved.