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 EditorPart 控制項 TextDisplayWebPart 的集合 (在此情況下,在 方法的實 CreateEditorParts 作中,集合中只有一個名為 EditorPart TextDisplayEditorPart 的控制項) 。 當控制項進入編輯模式時, 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 包含控制項的區域會在呼叫 方法之後立即呼叫 SyncChanges ApplyChanges 方法,以便控制項中的值一律與相關聯 WebPart 控制項中的 EditorPart 值同步處理。 另一個呼叫 方法的情況 SyncChanges 是控制項進入編輯模式時 WebPart

注意

SyncChanges如果該方法傳 false 回 ,則方法不會在 方法之後 ApplyChanges 呼叫,因為在此情況下發生錯誤。

給實施者的注意事項

衍生自 類別的 EditorPart 類別必須實作 SyncChanges() 方法。 實作的方法會使用 WebPartToEdit 屬性取得相關聯控制項的參考,然後使用相關聯 WebPart 控制項的屬性值來更新 EditorPart 控制項。

適用於

另請參閱