通过


EditorPart.SyncChanges 方法

定义

从控件中检索 WebPart 其关联 EditorPart 控件的属性值。

public:
 abstract void SyncChanges();
public abstract void SyncChanges();
abstract member SyncChanges : unit -> unit
Public MustOverride Sub SyncChanges ()

示例

下面的代码示例演示如何在自定义EditorPart控件中实现SyncChanges该方法。 有关运行示例所需的完整代码,请参阅类概述的 EditorPart “示例”部分。

代码示例的第一部分演示了命名TextDisplayEditorPart的自定义EditorPart类中方法的SyncChanges实现。 此方法使用属性获取对关联 TextDisplayWebPart 控件的 WebPartToEdit 引用。 然后,它获取属性的值TextDisplayWebPart.FontStyle,并更新自定义EditorPart控件的下拉列表控件(由TextDisplayEditorPart.PartContentFontStyle属性引用)中选择的项。

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;
    }
  }
}
Public Overrides Sub SyncChanges()
  Dim part As TextDisplayWebPart = CType(WebPartToEdit, _
                                         TextDisplayWebPart)
  Dim currentStyle As String = part.FontStyle

  ' Select the current font style in the drop-down control.
  Dim item As ListItem
  For Each item In PartContentFontStyle.Items
    If item.Value = currentStyle Then
      item.Selected = True
      Exit For
    End If
  Next item

End Sub

代码示例的第二部分演示了关联WebPart控件TextDisplayWebPart(在本例中,集合中只有一EditorPart个控件)在其方法的CreateEditorParts实现中创建了TextDisplayEditorPart关联EditorPart控件的集合。 当控件进入编辑模式时 TextDisplayWebPart ,将执行此方法。

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; }
}
Public Overrides Function CreateEditorParts() _
                            As EditorPartCollection
  Dim editorArray As New ArrayList()
  Dim edPart as New TextDisplayEditorPart()
  edPart.ID = Me.ID & "_editorPart1"
  editorArray.Add(edPart)
  Dim editorParts As New EditorPartCollection(editorArray)
  Return editorParts

End Function

Public Overrides ReadOnly Property WebBrowsableObject() _
                                    As Object
  Get
    Return Me
  End Get
End Property

注解

该方法 SyncChanges 是控件上 EditorPart 的关键方法。 它定义为类中的 EditorPart 抽象方法,必须由继承的控件实现。 该方法的目的是从属性中WebPartToEdit引用的WebPart控件中检索当前值,并使用这些值更新控件中的EditorPart字段,以便用户可以编辑这些值。

SyncChanges每当关联WebPart控件中的值可能已更改时,就会调用该方法。 对于每个EditorPart控件,EditorZoneBase包含控件的区域在调用该方法后立即调用SyncChangesApplyChanges该方法,以便控件中的EditorPart值始终与关联WebPart控件中的值同步。 另一种情况 SyncChanges 是当控件进入编辑模式时 WebPart 调用该方法。

注释

SyncChanges如果该方法返回,则该方法不会在该方法后false调用ApplyChanges该方法,因为在这种情况下,发生了错误。

实施者说明

派生自类的 EditorPart 类必须实现 SyncChanges() 该方法。 实现的方法使用WebPartToEdit属性获取对关联控件的引用,然后使用关联WebPart控件中的属性值更新EditorPart控件。

适用于

另请参阅