EditorPart.SyncChanges 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从 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
,并更新自定义控件上属性) 引用 TextDisplayEditorPart.PartContentFontStyle
的下拉列表控件 (选择的 EditorPart 项。
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 控件的集合 (在这种情况下,集合中只有一个名为 EditorPartTextDisplayEditorPart
的控件) 方法的 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 抽象方法,必须由继承的控件实现。 方法的目的是从 WebPart 属性中 WebPartToEdit 引用的控件中检索当前值,并使用这些值更新控件中的 EditorPart 字段,以便用户可以编辑这些值。
SyncChanges只要关联WebPart控件中的值可能已更改,就会调用 方法。 对于每个EditorPart控件,EditorZoneBase包含 控件的区域在调用 ApplyChanges 方法后立即调用 SyncChanges 方法,以便控件中的EditorPart值始终与关联WebPart控件中的值同步。 调用 方法的另一种情况 SyncChanges 是 WebPart 控件进入编辑模式时。
注意
SyncChanges如果该方法返回 false
,则不会在 ApplyChanges 方法之后调用 方法,因为在这种情况下,发生了错误。
实施者说明
派生自 类的 EditorPart 类必须实现 SyncChanges() 方法。 实现的方法使用 WebPartToEdit 属性获取对关联控件的引用,然后使用关联WebPart控件中的属性值更新EditorPart控件。