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.

IWebPartRow الواجهة

Visual Studio 2010

تعرف على واجهة موفر لتوصيل جهازي الخادم عناصر التحكم استخدام حقل مفرد من بيانات.

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

public interface IWebPartRow

Th هو واجهة هو مصمم للاستخدام بواسطة الاتصالات "أجزاء ويب". في اتصال "أجزاء ويب"، وعنصري تحكم الخادم الموجودة في WebPartZoneBaseتأسيس المنطقة الاتصال ومشاركة بيانات مع عنصر تحكم واحد يقوم بدور مستهلك وعناصر التحكم الأخرى موفر. mechanهوm لمشاركة بيانات في اتصال "أجزاء ويب" هو مثيل واجهة تعمل الموفر للعميل من خلال أسلوب رد اتصال. إلى تأسيس اتصال، والعملاء الموفر يجب العمل معا بنفس نوع واجهة لمشاركة بيانات. إذا لم يتعرف العميل نوع الواجهة المرسلة من قبل الموفر، من الممكن استمرار في اتصل عناصر التحكم بواسطة محول ( WebPartTransformerالكائن) الذي يقوم بترجمة مثيل الواجهة المرسلة من قبل الموفر في في هو نوع من العميل يتعرف. ل تفاصيل تشغيل الاتصالات، راجع WebPartConnectionو نظرة عامة حول اتصالات أجزاء ويب.

IWebPartRow واجهة هو بواجهة موفر المضمنة في عنصر التحكم "أجزاء ويب" بتعيين كواجهة قياسية لإنشاء الالاتصالات المستندة إلى صف بيانات. يمكنك أيضا إنشاء واجهات مخصصة لاستخدامها مع الاتصالات "أجزاء ويب"، ولكن في العديد من بيانات المستندة إلى تطبيقات ويب، هو مفيدة لإنشاء الاتصالات يستند إلى حقل مشترك (راجع IWebPartFieldواجهة)، الجدول (راجع IWebPartTableواجهة)، أو صف من مصدر بيانات. في اتصال نموذجية، WebPartعنصر تحكم التي تعمل كما هو موفر تطبيق IWebPartRowالواجهة وتوفير مثيل لواجهة للعملاء في أسلوب خاص لرد الاتصال. على سبيل المثال، قد يقوم موفر تطبيق IWebPartRowواجهة لصف المقابل إلى مستخدم في جهاز المستخدم معلومات الجدول. آخر WebPartالتحكم في الحركة كما هو تعريف مستهلك أسلوب خاص إلى تلقي مثيل واجهة، وقد ثم يفك الضغط بيانات مستخدم، استخدمه إلى البحث عن مزيد من المعلومات حول حسابات مستخدم، وقم بعرض الجميع المعلومات المرتبطة إلى مستخدم تشغيل الصفحة.

IWebPartRow على الواجهة بين الأعضاء المكشوفة. Schema خاصية بإرجاع معلومات المخطط حول صف بيانات تغليف في PropertyDescriptorCollectionالكائن. GetRowData الأسلوب تعريف أسلوب يستخدم implementer (على سبيل المثال، عنصر تحكم موفر) لاسترداد بيانات الصف لمثيل واجهة عند استدعاء الأسلوب الاستدعاء.

The following تعليمات برمجية مثال demonstrates how إلى إنشاء a ثابت اتصال between الثاني عناصر التحكم using the IWebPartRow واجهة. تعليمات برمجية مثال على ثلاثة أجزاء:

  • المصدر تعليمات برمجية for الثاني مخصص WebPart عناصر التحكم that can نموذج a اتصال using the IWebPartRow واجهة, مع واحد عنصر تحكم acting كـ the موفر, و the غير ذلك acting كـ the مستهلك.

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

  • A وصف of what happens when the مثال تعليمات برمجية runs.

The أول part of the تعليمات برمجية مثال هو the المصدر تعليمات برمجية for the الثاني مخصص عناصر التحكم. أول هو the تعليمات برمجية for the موفر, which implements the IWebPartRow واجهة. For simplicity في the مثال, the موفر creates a جدول مع some data rather than connecting إلى a قاعدة بيانات. The GetConnectionInterface أسلوب serves كـ the موفر's اتصال يؤشر, the callback أسلوب that إرجاع the واجهة مثيل إلى the مستهلك. كـ for the مستهلك, it retrieves the واجهة مثيل من the موفر في its أسلوب named SetConnectionInterface, which هو marked مع a ConnectionConsumer سمة. بعد retrieving the مثيل of the واجهة, the مستهلك, في its OnPreRender أسلوب, calls the implementation of the GetRowData أسلوب في the موفر, إلى retrieve the الفعلي بيانات و write it إلى the الصفحة.

لتشغيل مثال التعليمات البرمجية , يجب عليك التحويل برمجياً للتعليمات البرمجية المصدر . يمكنك تحويله برمجياً مباشرة و وضع ناتج التجميع في مجلد سلة موقع ويب الخاص بك أو في مخزن التجميع العمومي المؤقت. بشكل بديل، يمكنك وضع التعليمات البرمجية المصدر في مجلد App_Code للموقع الخاص بك ، حيث سيتم تحويله برمجيا بشكل حيوي وقت التشغيل . مثال التعليمات البرمجية هذا يستخدم التحويل البرمجي الديناميكي. للحصول على الإرشادات التفصيلية التي توضح كيفية التحويل البرمجي، راجع الإرشادات التفصيلية: تطوير و استخدام عنصر تحكم خادم مخصص.


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace Samples.AspNet.CS.Controls 
{
  // This sample code creates a Web Parts control that acts as a provider 
  // of row data.
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  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);
		}

  } // RowProviderWebPart


  // This sample code creates a Web Parts control that acts as a consumer 
  // of row data.
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]  
  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;
    }

  } // RowConsumerWebPart

} // Samples.AspNet.CS.Controls 



The ثانية part of the تعليمات برمجية مثال هو the ويب الصفحة that declares the ثابت اتصال و hosts the عناصر التحكم. قريب the الأعلى of the الصفحة هو a Register directive that declares the مساحة الاسم of the المصدر تعليمات برمجية contained في the App_Code الدليل. The اتصال هو declared using an <asp:webpartconnection> عنصر. The مخصص مستهلك و موفر عناصر التحكم are declared في a <zonetemplate> عنصر within an <asp:webpartzone> عنصر, which هو مطلوب for them إلى be able إلى يعيّن (they must reside within a منطقة that inherits من the WebPartZoneBase فئة).


<%@ page language="C#" %>
<%@ Register tagprefix="IRow" 
    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>IRow 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>
            <irow:RowProviderWebPart ID="provider1" runat="server" 
              Title="Row Provider Control" />
            <irow:RowConsumerWebPart ID="consumer1" runat="server" 
              Title="Row Consumer Control" />
          </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>


قم بتحميل الصفحة في المستعرض. The مستهلك عنصر تحكم displays the بيانات provided من the specified صف, which the موفر makes متوفر through an مثيل of the IWebPartRow واجهة.

نظام التشغيل 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
إظهار: