Sharepoint 2010网络部件中的WebBrowsable
和Personalizable
属性有何区别?
e.g。
[Personalizable(), WebBrowsable]
public string IconURL { get; set; }
VS
[WebBrowsable]
public string IconURL { get; set; }
MSDN给人的印象是personalizable
是针对每个用户的,而webbrowseable
是针对所有用户的 - 但是它没有明确提及这一点,我希望将其排在我的脑海中。
E.g。我可以在personalizable
上设置特定于用户的属性,在webbrowsable
上设置网络部分吗?
答案 0 :(得分:15)
WebBrowseable属性指定修饰属性应出现在Web部件的编辑器组件中。它只允许最终用户修改属性而不对持久性做任何事情。
Personalizable属性指定装饰属性的值必须在SharePoint后端中保留在用户存储中(默认情况下)或共享存储中(如果Shared
范围是指定)。它只关心持久性,并且对编辑器组件中的属性存在没有任何作用。
因此,如果您使用[WebBrowsable]
而非[Personalizable]
修饰属性,最终用户将能够在编辑器组件中修改它,但其新值将不会保留。
相反,如果您使用[Personalizable]
而非[WebBrowsable]
装饰某个属性,则其值将被保留,但不允许最终用户修改它。
答案 1 :(得分:2)
WebBrowsable将使该属性显示在WebPart的ToolPane或EditorPart中。
Personalizable将允许该属性存储并保存在个性化存储中。有一个枚举,您可以在其中指定此属性将按用户值存储的天气或所有用户的单个值。
WebBrowsable也是属性特定的Personalizable。
答案 2 :(得分:1)
WebBrowsable [WebBrowsable(True)] “指示Web部件控件的指定属性是否显示在PropertyGridEditorPart对象中。” (MSDN) http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.webbrowsableattribute.aspx
个性化[Personalizable(true)] 允许用户个性化WebPart的设置。 http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.personalizableattribute.aspx