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,并更新自定义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控件。