继承System.Web.UI.WebControls.WebParts.EditorPart
类我已经证明可以在VisualWebPart中公开一个公共属性,当通过EditorPart更新时,它将自动保存在sharepoint中。
我遇到的问题是保存字符串和整数效果很好,但是当我试图保持集合(例如List<String>
)的值时,对象不会被保存。
代码看起来像这样。
Public Class MyCustomEditorPart
Inherits EditorPart
Public Overrides Function ApplyChanges() As Boolean
VisualWebPart1.TestString = "Test"
VisualWebPart1.TestList = new List(Of String) ''Add Items....
End Function
Public Overrides Sub SyncChanges()
Dim readString As String = VisualWebPart1.TestString ''Works great
Dim readList As List(Of String) = VisualWebPart1.TestList ''Always an empty new instance
End Function
End Class
Public Class VisualWebPart1
Inherits WebPart
Public Property TestString As String
Public Property TestList As List(Of String)
End Class
有人愿意提供一些见解吗?你能用这种技术保存原语吗?
答案 0 :(得分:6)
你是对的,web部分默认只能将原始类型保存到个性化存储中。
您必须将复杂类型序列化为save,然后保存到Web部件
OR
您必须为复杂类型编写类型转换器,并将Web部件中的类型转换器指定为属性。