This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

ConsumerConnectionPoint المنشئ

Visual Studio 2010

تهيئة مثيل جديد من فئة ال ConsumerConnectionPoint.

مساحة الاسم:  System.Web.UI.WebControls.WebParts
التجميع:  System.Web (في System.Web.dll)

public ConsumerConnectionPoint(
	MethodInfo callbackMethod,
	Type interfaceType,
	Type controlType,
	string displayName,
	string id,
	bool allowsMultipleConnections
)

المعلمات

callbackMethod
النوع: System.Reflection.MethodInfo
الأسلوب في العميل عنصر تحكم التي تقوم بإرجاع مثيل واجهة للعملاء لتأسيس اتصال.
interfaceType
النوع: System.Type
Type الواجهة التي مستهلك يتلقى من موفر.
controlType
النوع: System.Type
Type عنصر التحكم مستهلك الذي أشر الاتصال مستهلك هو المقترن.
displayName
النوع: System.String
اسم عرض مألوفاً لنقطة اتصال العميل الذي يظهر إلى مستخدمين في واجهة مستخدم (واجه مستخدم) للاتصال.
id
النوع: System.String
معرّف فريد مستهلك نقطة الاتصال.
allowsMultipleConnections
النوع: System.Boolean
القيمة منطقية تشير فيما إذا كان العميل يؤشر اتصال يمكن أن يكون لديك العديد من الاتصالات المتزامنة مع الموفرين.

استثناء:شرط
ArgumentNullException

callbackMethod هو null.

-أو-

interfaceType هو null.

-أو-

controlType هو null.

-أو-

displayName هو null أو an فارغ سلسلة ("").

ArgumentException

controlType ليست من النوع نفسه كعنصر التحكم مستهلك (أو فئة صالحة المشتقة منه).

ConsumerConnectionPoint الدالة الإنشائية ConsumerConnectionPointالفئة الأساسية يستدعي ببساطة الدالة الإنشائية وتمرير معلمات متعددة لها وتهيئة class. الأساسية

الدالة الإنشائية فئة الأساس بفحص عدد من المعلمات الخاصة بنقطة اتصال و يمكن أن يقوم بطرح عدة استثناءات. للحصول على قائمة الاستثناءات المحتملة، راجع قسم "استثناءات".

يمكنك استدعاء ConsumerConnectionPointconstrucإلىr إلى إنشاء المثيل الخاص بك من ConsumerConnectionPointفئة. ومع ذلك، في الحالات الموقع يتم تأسيس اتصال ببساطة وعدم توسيع الفئة، يجب الاتصال GetConsumerConnectionPointsأسلوب إلى بإرجاع كائن نقطة اتصال من موفر.

يوضح المثال تعليمات برمجية التالي كيفية ينحدر من ConsumerConnectionPointالفئة لإنشاء مورد مخصص يؤشر اتصال.

تعليمات برمجية مثال على ثلاثة أجزاء:

  • مصدر ملف الذي يحتوي على موفر WebPartعنصر تحكم أو بعميل WebPart، ومخصص ConsumerConnectionPointالكائن.

  • أ صفحة ويب الذي يستضيف عناصر التحكم في اتصال ثابتة.

  • An explanation of how إلى تشغيل the مثال تعليمات برمجية.

The أول part of the تعليمات برمجية مثال هو the المصدر for the موفر و مستهلك WebPart عناصر التحكم, و a مخصص ConsumerConnectionPoint فئة, named TableConsumerConnectionPoint. ملاحظة that the الدالة الإنشائية of the TableConsumerConnectionPoint فئة calls the الأساس الدالة الإنشائية, passing it the مطلوب معلمات كـ indicated في the معلمات مقطع. Also ملاحظة that في the TableConsumer فئة, the SetConnectionInterface أسلوب هو specified كـ the callback أسلوب for الاتصالات, و the ConnectionConsumer سمة declares the مخصص TableConsumerConnectionPoint كـ a معلمة. This demonstrates how إلى إنشاء a مخصص مستهلك اتصال يؤشر و then associate it مع a مستهلك عنصر تحكم. This مثال assumes that the المصدر تعليمات برمجية هو dynamically compiled, so you should place the المصدر ‏‏رمز الملف في an App_Code subfolder of your ويب تطبيق.


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Security.Permissions;
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 table data.
namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
	public sealed class TableProviderWebPart : WebPart, IWebPartTable
	{
		DataTable _table;

		public TableProviderWebPart()
		{
			_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);
		}

		public PropertyDescriptorCollection Schema
		{
			get
			{
				return TypeDescriptor.GetProperties(_table.DefaultView[0]);
			}
		}
		public void GetTableData(TableCallback callback)
		{
				callback(_table.Rows);
		}

		public bool ConnectionPointEnabled
		{
			get
			{
				object o = ViewState["ConnectionPointEnabled"];
				return (o != null) ? (bool)o : true;
			}
			set
			{
				ViewState["ConnectionPointEnabled"] = value;
			}
		}

		[ConnectionProvider("Table", typeof(TableProviderConnectionPoint), AllowsMultipleConnections = true)]
		public IWebPartTable GetConnectionInterface()
		{
			return new TableProviderWebPart();
		}

		public class TableProviderConnectionPoint : ProviderConnectionPoint
		{
			public TableProviderConnectionPoint(MethodInfo callbackMethod, Type interfaceType, Type controlType,
			string name, string id, bool allowsMultipleConnections) : base(
				callbackMethod, interfaceType, controlType,
				name, id, allowsMultipleConnections)
			{
			}
			public override bool GetEnabled(Control control)
			{
				return ((TableProviderWebPart)control).ConnectionPointEnabled;
			}
		}
	}
	
	// This code sample demonstrates a custom WebPart controls that acts as 
	// a consumer in a Web Parts connection.
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class TableConsumer : WebPart
  {
    private IWebPartTable _provider;
    private ICollection _tableData;

    private void GetTableData(object tableData)
    {
      _tableData = (ICollection)tableData;
    }

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


    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("Table")]
    public void SetConnectionInterface(IWebPartTable provider)
    {
      _provider = provider;
    }

    public class TableConsumerConnectionPoint : ConsumerConnectionPoint
    {
      public TableConsumerConnectionPoint(MethodInfo callbackMethod, Type interfaceType, Type controlType,
      string name, string id, bool allowsMultipleConnections)
        : base(
        callbackMethod, interfaceType, controlType,
        name, id, allowsMultipleConnections)
      {
      }
    }
  }
}


The ثانية part of the تعليمات برمجية مثال هو the ويب الصفحة that hosts the مخصص عناصر التحكم في a ثابت ويب parts اتصال. At the الأعلى of the الصفحة هو a Register directive إلى declare a بادئة و the مساحة الاسم for the مخصص عناصر التحكم. The اتصال هو declared بواسطة using an <asp:webpartconnection> عنصر, و the موفر و مستهلك عناصر التحكم are declared within an <asp:webpartzone> عنصر.


<%@ 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IField Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <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>
            <aspSample:TableProviderWebPart ID="provider1" runat="server" 
              ToolTip="Web Parts Table Provider Control" />
            <aspSample:TableConsumer ID="consumer1" runat="server" 
              ToolTip="Web Parts Table Consumer Control"/>
          </zoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>


قم بتحميل الصفحة في المستعرض. وجود الاتصال بين عناصر التحكم الموجودة مسبقاً، و مستهلك يعرض بيانات من الموفر، لأنه تم تعريفه الاتصال كاتصال ثابت في الصفحة.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: