次の方法で共有


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

コード例の 2 番目の部分では、 メソッドの実装で、TextDisplayWebPart関連付けられたEditorPartWebPartコントロールのコレクション (この例では、コレクション内にという名前TextDisplayEditorPartのコントロールが 1 つだけEditorPart) を作成する方法をCreateEditorParts示します。 このメソッドは、コントロールが 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 抽象メソッドとして定義され、継承されたコントロールによって実装される必要があります。 メソッドの目的は、 プロパティで参照されているコントロールから現在の値をWebPartWebPartToEdit取得し、ユーザーが編集できるようにコントロール内のEditorPartフィールドをそれらの値で更新することです。

メソッドは SyncChanges 、関連付けられた WebPart コントロールの値が変更されるたびに呼び出されます。 コントロールをEditorZoneBase含むゾーンではEditorPart、 メソッドを呼び出した直後に メソッドが呼び出SyncChangesApplyChangesされるため、コントロール内のEditorPart値は常に関連付けられたWebPartコントロールの値と同期されます。 メソッドが SyncChanges 呼び出されるもう 1 つのケースは、 WebPart コントロールが編集モードになったときです。

注意

SyncChangesメソッドが を返falseした場合、メソッドのApplyChanges後に メソッドは呼び出されません。その場合、エラーが発生したためです。

注意 (実装者)

クラスから派生するクラスは、 EditorPart メソッドを実装する SyncChanges() 必要があります。 実装されたメソッドは、 プロパティを使用して関連付けられたコントロールへの参照をWebPartToEdit取得し、関連付けられたWebPartコントロールのプロパティ値を使用してコントロールを更新EditorPartします。

適用対象

こちらもご覧ください