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.

IWebEditable الواجهة

Visual Studio 2010

توفر واجهة للمطورين لتعيين مخصص ‏‏تحرير عناصر التحكم المرتبطة بأحد WebPartعنصر التحكم.

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

public interface IWebEditable

IWebEditable تمكنك واجهة مخصصة بإقران EditorPartعناصر التحكم مع عنصر تحكم ملقم-مثل WebPartعنصر تحكم أو عنصر تحكم مستخدم، أو عنصر تحكم الخادم المخصصة. EditorPart عنصر تحكم s الموجودة مع EditorZoneعنصر تحكم، وتوفر هذه المنطقة مع به التحرير عنصر تحكم s المستخدمين بواجهة مستخدم (واجه المستخدم) لتعديل خصائص المظهر والسلوك تشغيل المقترنة WebPartعنصر تحكم.

IWebEditable واجهة يتضمن جهازي الأعضاء المكشوفة. WebBrowsableObject خاصية يوفر طريقة لاتصال EditorPartعناصر التحكم للحصول على مرجع إلى عنصر تحكم الخادم المقترنة. CreateEditorParts أسلوب هو المستخدمة لإنشاء مثيل مخصص كل EditorPartعنصر التحكم المقترن بعنصر تحكم الخادم، والعودة إليها كمجموعة.

IWebEditable واجهة هو المطبقة بالفعل تشغيل الأساس WebPartللفئات، تشغيل الرغم من أن بشكل افتراضي th هو لا تطبيق بإقران أي المخصصة EditorPartيتحكم WebPartفئة. إلى associate a derived WebPart عنصر تحكم with custom EditorPart عناصر التحكم, you can override the CreateEditorParts أسلوب.

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

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

ما يلي تعليمات برمجية مثال يوضح كيفية يمنع الأساليب الخاصة عنصر التحكم، وثم يقوم بإنشاء مثيل مخصص IWebEditableواجهة في مخصصWebPartEditorPartالتحكم في الوقت WebPartعنصر تحكم يقوم بإدخال الوضع التحرير.

هذا المثال يحتوي على الرابع أجزاء:

  • تعليمات برمجية للفئة المخصصة.

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

  • عنصر تحكم مستخدم بتبديل الصفحة في الوضع التحرير.

  • وصف كيفية مثال يعمل في مستعرض.

هو الجزء أول من المثال تعليمات برمجية مخصص TextDisplayWebPartفئة. إشعار الفئة مشتقة من WebPartالفئة و implements IWebEditableالواجهة، وتقديم تطبيقات محددة CreateEditorPartsالأسلوب و WebBrowsableObjectخاصية. لاحظ أيضا متداخلة TextDisplayWebPartالفئة هو خاص، مخصص TextDisplayEditorPartالفئة التي مشتقة من القاعدة EditorPartclass. لتشغيل مثال التعليمات البرمجية , يجب عليك التحويل برمجياً للتعليمات البرمجية المصدر . يمكنك تحويله برمجياً مباشرة و وضع ناتج التجميع في مجلد سلة موقع ويب الخاص بك أو في مخزن التجميع العمومي المؤقت. بشكل بديل، يمكنك وضع التعليمات البرمجية المصدر في مجلد App_Code للموقع الخاص بك ، حيث سيتم تحويله برمجيا بشكل حيوي وقت التشغيل . للإرشادات التفصيلية التي توضح كلا الأسلوبين التحويل البرمجي، راجع الإرشادات التفصيلية: تطوير و استخدام عنصر تحكم خادم مخصص.


using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
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
{
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class TextDisplayWebPart : WebPart
  {
    private String _contentText = null;
    private String _fontStyle = null;
    TextBox input;
    Label DisplayContent;
    Literal lineBreak;

    public override EditorPartCollection CreateEditorParts()
    {
      ArrayList editorArray = new ArrayList();
      TextDisplayEditorPart edPart = new TextDisplayEditorPart();
      edPart.ID = this.ID + "_editorPart1";
      editorArray.Add(edPart);
      EditorPartCollection editorParts = 
        new EditorPartCollection(editorArray);
      return editorParts;
    }

    public override object WebBrowsableObject
    {
      get { return this; }
    }

    [Personalizable(), WebBrowsable]
    public String ContentText
    {
      get { return _contentText; }
      set { _contentText = value; }
    }

    [Personalizable(), WebBrowsable()]
    public String FontStyle
    {
      get { return _fontStyle; }
      set { _fontStyle = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      DisplayContent.BackColor = Color.LightBlue;
      DisplayContent.Text = this.ContentText;
      if (FontStyle == null)
        FontStyle = "None";
      SetFontStyle(DisplayContent, FontStyle);
      this.Controls.Add(DisplayContent);

      lineBreak = new Literal();
      lineBreak.Text = @"<br />";
      Controls.Add(lineBreak);

      input = new TextBox();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Set Label Content";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);

    }

    private void submit_Click(object sender, EventArgs e)
    {
      // Update the label string.
      if (input.Text != String.Empty)
      {
        _contentText = input.Text + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }

    private void SetFontStyle(Label label, String selectedStyle)
    {
      if (selectedStyle == "Bold")
      {
        label.Font.Bold = true;
        label.Font.Italic = false;
        label.Font.Underline = false;
      }
      else if (selectedStyle == "Italic")
      {
        label.Font.Italic = true;
        label.Font.Bold = false;
        label.Font.Underline = false;
      }
      else if (selectedStyle == "Underline")
      {
        label.Font.Underline = true;
        label.Font.Bold = false;
        label.Font.Italic = false;
      }
      else
      {
        label.Font.Bold = false;
        label.Font.Italic = false;
        label.Font.Underline = false;
      }
    }

    // Create a custom EditorPart to edit the WebPart control.
    [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    private class TextDisplayEditorPart : EditorPart
    {
      DropDownList _partContentFontStyle;

      public override bool ApplyChanges()
      {
        TextDisplayWebPart part = 
          (TextDisplayWebPart)WebPartToEdit;
        // Update the custom WebPart control with the font style.
        part.FontStyle = PartContentFontStyle.SelectedValue;

        return true;
      }

      public override void SyncChanges()
      {
        TextDisplayWebPart part = 
          (TextDisplayWebPart)WebPartToEdit;
        String currentStyle = part.FontStyle;

        // Select the current font style in the drop-down control.
        foreach (ListItem item in PartContentFontStyle.Items)
        {
          if (item.Value == currentStyle)
          {
            item.Selected = true;
            break;
          }
        }
      }

      protected override void CreateChildControls()
      {
        Controls.Clear();

        // Add a set of font styles to the dropdown list.
        _partContentFontStyle = new DropDownList();
        _partContentFontStyle.Items.Add("Bold");
        _partContentFontStyle.Items.Add("Italic");
        _partContentFontStyle.Items.Add("Underline");
        _partContentFontStyle.Items.Add("None");

        Controls.Add(_partContentFontStyle);

      }

      protected override void RenderContents(HtmlTextWriter writer)
      {
        writer.Write("<b>Text Content Font Style</b>");
        writer.WriteBreak();
        writer.Write("Select a font style.");
        writer.WriteBreak();
        _partContentFontStyle.RenderControl(writer);
        writer.WriteBreak();
      }

      // Access the drop-down control through a property.
      private DropDownList PartContentFontStyle
      {
        get 
        {
          EnsureChildControls();
          return _partContentFontStyle;
        }
      }
    }
  }
}


الجزء الثاني من مثال التعليمة البرمجية هي صفحة ويب التي تستضيف عنصر تحكم مخصص. لاحظ أنه بالرغم من أن EditorZoneعنصر التحكم هو التي تم تعريفها في علامات الصفحة المخصصة EditorPartالتحكم بحاجة لا أن يشار إلى هناك، لأنه يمكن إضافته برمجياً في وقت التشغيل.


<%@ page language="c#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeUC" 
  Src="DisplayModeUCcs.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" 
  Assembly="TextDisplayWebPartCS" %>

<!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>
      Text Display WebPart with EditorPart
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server" />
      <uc1:DisplayModeUC ID="DisplayModeUC1" runat="server" />
      <asp:webpartzone id="zone1" runat="server" 
        CloseVerb-Enabled="false">
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="textwebpart" 
            title = "Text Content WebPart" /> 
        </zonetemplate>
      </asp:webpartzone> 
      <asp:EditorZone ID="EditorZone1" runat="server" /> 
    </form>
  </body>
</html>


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


<%@ control language="C#" classname="DisplayModeMenu"%>

<script runat="server">

  // On initial load, fill the dropdown with display modes.
  void DisplayModeDropdown_Load(object sender, System.EventArgs e)
  {
    if (!IsPostBack)
    {
      WebPartManager mgr = 
        WebPartManager.GetCurrentWebPartManager(Page);
      String browseModeName = WebPartManager.BrowseDisplayMode.Name;
      // Use a sorted list so the modes are sorted alphabetically.
      SortedList itemArray = 
        new SortedList(mgr.SupportedDisplayModes.Count);

      // Add display modes only if they are supported on the page.
      foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes)
      {
        String modeName = mode.Name;
        itemArray.Add(modeName, modeName + " Mode");      
      }
      // Fill the dropdown with the display mode names.
      foreach(DictionaryEntry arrayItem in itemArray)
      {
        ListItem item = new ListItem(arrayItem.Value.ToString(), 
          arrayItem.Key.ToString());
        if (item.Value == browseModeName)
          item.Selected = true;
        DisplayModeDropdown.Items.Add(item);
      }
    }
  }

  // Change the page to the selected display mode.
  void DisplayModeDropdown_SelectedIndexChanged(object sender, 
    EventArgs e)
  {
    WebPartManager mgr = WebPartManager.GetCurrentWebPartManager(Page);
    String selectedMode = DisplayModeDropdown.SelectedValue;

    foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes)
    {
      if (selectedMode == mode.Name)
      {
        mgr.DisplayMode = mode;
        break;
      }
    }
  }

</script>
<div>
  <asp:DropDownList ID="DisplayModeDropdown" 
    runat="server" 
    AutoPostBack="true" 
    OnLoad="DisplayModeDropdown_Load" 
    OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
</div>


لتشغيل تعليمات برمجية المثال، تحميل استضافة صفحة ويب في مستعرض إضافة بعض نص إلى صندوق نص وانقر فوق الزر تعيين محتوى التسمية بتحديث التسمية بعنصر التحكم. إلى تحويل الصفحة في إلى الوضع التحرير، تحديد تحرير من المنسدلة-أوضاع عرض التي تتضمن القائمة. إلى عرض واجهة المستخدم من cusإلىm TextDisplayEditorPartعنصر تحكم، انقر فوق السهم المنسدل قائمة الأفعال TextDisplayWebPartالتحكم، ثم تحديد تحرير. في واجهة المستخدم التحرير، يمكنك استخدام قائمة منسدلة تحتوي على أنماط خط بتحديث الالنمط نص التسمية في TextDisplayWebPartعنصر تحكم. يجب عليك النقر فوق الوضع استعراض في القائمة المنسدلة لأوضاع عرض لإرجاع الصفحة إلى طريقة عرض العادية و التأكد من نص في التسمية الآن وجود النمط خط الذي حددته في الوضع التحرير.

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