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.

IWebPart الواجهة

Visual Studio 2010

Defines عام مستخدم واجهة (واجه المستخدم) خصائص used بواسطة ASP.NET WebPart عناصر التحكم.

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

public interface IWebPart

The IWebPart واجهة provides several واجه المستخدم-oriented خصائص that enhance the مستخدم تجربة of working مع WebPart عناصر التحكم. When you إنشاء عناصر التحكم that derive من the الأساس WebPart class, you يحصل an implementation of الجميع the خصائص في the IWebPart واجهة, because the WebPart فئة الأساس implements this واجهة.

يمكنك استخدام عناصر التحكم موجود في المستخدم أو عناصر تحكم ASP.NET عناصر تحكم الخادم المخصصة التي لا يورث من WebPartفئة كجزء من "أجزاء ويب" التطبيق، ويمكن أيضا استخدام هذه الخصائص مبنية على واجهة مستخدم تم تعريفه بواسطة IWebPartالواجهة. إذا قمت بوضع موجود الخادم عناصر التحكم في WebPartZoneBaseالمنطقة، في وقت التشغيل التي يتم التفاف مع GenericWebPartالكائن. لأن GenericWebPartترث الفئة من WebPartإسناد الفئة، يقوم بتمكين عناصر التحكم موجود في ملقم إلى عملية صواب WebPartعناصر التحكم وذلك بإضافة إلى هذه الخصائص من IWebPartالواجهة.

إذا قمت بوضع عناصر تحكم الملقم غير WebPartعناصر التحكم في المناطق، يمكنهم استخدام IWebPartخصائص في وقت التشغيل، ويمكن أيضا تعريف القيم لهؤلاء خصائص تشغيل عناصر تحكم الملقم في علامات الصفحة (بتنسيق الصفحة للاستمرارية). ومع ذلك، لأن هذه الخصائص متوفرة فقط للخادم عناصر التحكم في وقت التشغيل، الترميز بوقت التصميم ميزات مثل التحسس الذكي لا تتعرف تشغيل IWebPartالخصائص التي يتم تعريفها تشغيل الملقم عناصر التحكم. تعريف الخصائص في عناصر التحكم هذه يعمل عند تحميل الصفحة، ولكن لا يتعرف برنامج ‏‫Visual Studio Microsoft Office 2010 Suite الخصائص كـ صالح في وقت التصميم. إذا كنت ترغب في إضافة IWebPartخصائص الملقم الموجود ومستخدم عناصر التحكم لتحسين خبرة مستخدم وقت التصميم، يمكنك تطبيق IWebPartواجهة في عنصر تحكم الخادم.

ربما يكون السبب الرئيسي لتنفيذ IWebPartواجهة هو لعناصر التحكم التي لا تدعم استخدام خصائص expando (مخصص). خصائص Expando هي السلاسل التي يمكن إضافتها إلى فئة ديناميكياً كخاصية، بواسطة IAttributeAccessorالواجهة. عناصر التحكم that implement this واجهة, including the WebControl فئة و its children, can استخدم expando خصائص. ولذلك، الجميع عناصر تحكم الخادم ASP.NET وعناصر التحكم المخصصة التي ينحدر من هذه العناصر مستخدم و WebPartعناصر التحكم دعم استخدام خصائص expando. ولكنها مخصصة عناصر التحكم التي ترث مباشرة الأساسية Controlلا تعتمد الفئة خصائص expando. وهكذا، إذا كنت تقوم بتعريف عناصر التحكم داخل WebPartZone، لن يتمكن من إلى الشائعة تقوم بتعريف IWebPartالخصائص في عناصر التحكم، وخصائص مثل Titleو Description. إذا كنت تريد إلى استخدام هذه الخصائص مع مثل عناصر التحكم هذه، يجب تطبيق IWebPartالواجهة.

ملاحظات للقائمين بالتنفيذ

عادة لا تحتاج إلى تطبيق IWebPartواجهة، أما تشغيل مخصص WebPartعناصر التحكم أو الخادم يتحكم، لأن الأساس WebPartالفئة مسبقاً بتنفيذ واجهة. لمخصص WebPartعناصر التحكم، وعناصر تحكم الملقم الأخرى التي تم وضعها في WebPartZoneBaseالمناطق، يمكن استخدام الجميع IWebPartخصائص.

السبب الرئيسي لتطبيق IWebPartواجهة نفسك، سواء في مخصص WebPartعنصر تحكم أو عنصر تحكم ملقم آخر، هو إذا كنت ترغب في تغيير التطبيق الافتراضي. على سبيل المثال، قد تحتاج إلى توفير قيم الافتراضية لبعض خصائص. سبب آخر لتطبيق الواجهة في عنصر تحكم الملقم أو مستخدم هو حيث سيتم تحسين تجربة العمل مع هذه الخصائص تشغيل عنصر تحكم وقت التصميم.

يلي تعليمات برمجية مثال يوضح كيفية تطبيق IWebPartواجهة في عنصر تحكم مستخدم. هذا هو تطبيق بسيط يوضح أدنى حد من متطلبات كيف إلى تطبيق الخصائص.

يعرض الجزء أول من المثال تعليمات برمجية عنصر تحكم مستخدم. عنصر تحكم مستخدم يطبق الجميع خصائص IWebPartالواجهة، بالإضافة إلى جهازي العام خصائص إضافى مرتبطة بعناصر التحكم في واجهة مستخدم. استخدام الثاني cusإلىm خصائص كل Personalizableسمة، والتي تمكن من قيم الموجودة في تلك الخصائص إلى حفظ عبر جلسات عمل مستعرض. ملاحظة that في the الأساس WebPart فئة implementation, الجميع the خصائص of the IWebPart واجهة are implemented كـ personalizable كـ well, though they are not في this تعليمات برمجية مثال.


<%@ control language="C#" classname="AccountUserControlCS"%>
<%@ implements interface="System.Web.UI.WebControls.WebParts.IWebPart" %>

<script runat="server">

  private string m_Description;
  private string m_Title;
  private string m_TitleIconImageUrl;
  private string m_TitleUrl;
  private string m_CatalogIconImageUrl;

  [Personalizable]
  public string UserName
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox1.Text))
        return String.Empty;
      else
        return Textbox1.Text;
    }

    set
    {
      Textbox1.Text = value;
    }
  }

  [Personalizable]
  public string Phone
  {
    get
    {
      if(String.IsNullOrEmpty(Textbox2.Text))
        return String.Empty;
      else
        return Textbox2.Text;
    }

    set
    {
      Textbox2.Text = value;
    }
  }

  public string Description
  {
    get
    {
      object objTitle = ViewState["Description"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["Description"] = value;
    }
  }

  public string Title
  {
    get
    {
      object objTitle = ViewState["Title"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["Title"] = value;
    }
  }

  public string Subtitle
  {
    get
    {
      object objSubTitle = ViewState["Subtitle"];
      if (objSubTitle == null)
        return "My Subtitle";

      return (string)objSubTitle;
    }

  }

  public string TitleIconImageUrl
  {
    get
    {
      object objTitle = ViewState["TitleIconImageUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["TitleIconImageUrl"] = value;
    }
  }

  public string TitleUrl
  {
    get
    {
      object objTitle = ViewState["TitleUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["TitleUrl"] = value;
    }
  }

  public string CatalogIconImageUrl
  {
    get
    {
      object objTitle = ViewState["CatalogIconImageUrl"];
      if (objTitle == null)
        return String.Empty;

      return (string)objTitle;
    }
    set
    {
      ViewState["CatalogIconImageUrl"] = value;
    }
  }

  // Update the selected IWebPart property value.
  void Button1_Click(object sender, EventArgs e)
  {
    String propertyValue = Server.HtmlEncode(TextBox3.Text);
    TextBox3.Text = String.Empty;

    switch (RadioButtonList1.SelectedValue)
    {
      case "title":
        this.Title = propertyValue;
        break;
      case "description":
        this.Description = propertyValue;
        break;
      case "catalogiconimageurl":
        this.CatalogIconImageUrl = propertyValue;
        break;
      case "titleiconimageurl":
        this.TitleIconImageUrl = propertyValue;
        break;
      case "titleurl":
        this.TitleUrl = propertyValue;
        break;
      default:
        break;
    }
  }

</script>
<div>
<asp:label id="Label1" runat="server" AssociatedControlID="Textbox1">
  Name</asp:label>
<asp:textbox id="Textbox1" runat="server" />
</div>
<div>
<asp:label id="Label2" runat="server" AssociatedControlID="Textbox2">
  Phone</asp:label>
<asp:textbox id="Textbox2" runat="server"></asp:textbox>
</div>
<div>
<asp:button id="Button2" runat="server" text="Save Form Values" />
</div>
<hr />
<asp:Label ID="Label3" Runat="server" Text="Label" 
  AssociatedControlID="RadioButtonList1">
  <h3>Update selected IWebPart property values.</h3>
</asp:Label>
<asp:RadioButtonList ID="RadioButtonList1" Runat="server">
  <asp:ListItem Value="title">Title</asp:ListItem>
  <asp:ListItem Value="description">Description</asp:ListItem>
  <asp:ListItem Value="catalogiconimageurl">CatalogIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleiconimageurl">TitleIconImageUrl</asp:ListItem>
  <asp:ListItem Value="titleurl">TitleUrl</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Label ID="Label4" runat="server" Text="Label"
  AssociatedControlID="TextBox3">
Property Value:  
</asp:Label>
<asp:TextBox ID="TextBox3" runat="server">
</asp:TextBox>  
<br />  
<asp:Button ID="Button1" runat="server" 
  Text="Update Property" 
  OnClick="Button1_Click">
</asp:Button>


يعرض الجزء الثاني من مثال التعليمة البرمجية صفحة ويب الذي يستضيف عنصر تحكم المستخدم. الصفحة تحتوي على " WebPartZoneعنصر التحكم داخل الذي عنصر تحكم المستخدم المشار إليه. لاحظ أنه العديد من IWebPartيتم تعيين قيم الخصائص للواجهة بشكل إلزامي في ترميز عنصر تحكم المستخدم، الذي يمكن أن تتصرف وتظهر WebPartالتحكم بوقت التصميم ثم قم بتشغيل الوقت. If you تحميل the الصفحة في a مستعرض, you can استخدم the واجه المستخدم تشغيل the الصفحة إلى demonstrate the ability إلى programmatically تغيير the قيم of the implemented IWebPart خصائص at run الوقت. When you تغيير some of the خاصية قيم, the التغييرات are not evident تشغيل the الصفحة, but are مرئي في the الصفحة المصدر (the TitleIconImageUrl خاصية), أو are stored في the تطبيق's الولاية بيانات (the CatalogIconImageUrl خاصية).

ملاحظة الأمانملاحظة الأمان

يحتوي هذا المثال على مربع نص يقبل إدخال المستخدم و الذي يعد تهديد أمان محتمل. بشكل افتراضي، تتحقق صفحات ويب ASP.NET من أن مُدخلات المستخدم لا تتضمن برنامج نصي أو عناصر HTML. لمزيد من المعلومات، راجع نظرة عامة حول عمليات استغلال البرنامج النصي.


<%@ page language="c#" %>
<%@ register tagprefix="uc1" 
    tagname="AccountUserControlCS" 
    src="AccountUserControlcs.ascx"%>
<!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>
      Personalizable User Control with IWebPart Properties
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server" />
      <asp:webpartzone 
        id="zone1" 
        runat="server" 
        headertext="Main" 
        CloseVerb-Enabled="false">
        <zonetemplate>
          <uc1:AccountUserControlCS 
            runat="server" 
            id="accountwebpart" 
            title="Account Form"
            Description="Account Form with default values."
            CatalogIconImageUrl="MyCatalogIcon.gif"
            TitleIconImageUrl="MyTitleIcon.gif"
            TitleUrl="MyUrl.html"/>
        </zonetemplate>
      </asp:webpartzone>    
    </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
إظهار: