我们使用枚举作为自定义属性构建了一个可视化Web部件,以允许用户为按钮选择主题。主题列表是按字母顺序排列的。
我们现在有新主题要添加到Web部件,但是如果我们只是更新主题的枚举列表,在Web部件中的现有值之间添加新项目,那么使用此Web部件的任何人都可能获得不同的主题关于枚举值。
我已经发布了下面的代码,但我想我正在寻找有关如何最好地更新解决方案以及保留使用Web部件的人的现有值的建议。
现有
公共枚举ButtonThemes //这些选项链接到/ _layouts / images / MWHCallToAction目录中的图像,例如Brown.jpg,应在此添加任何新图像选项,并将实际图像上传到服务器。
{
None,
Announcement,
ApprovedSoftware,
ComputerMouse
}
New Enum could be
public enum ButtonThemes
//these choices link to images in the /_layouts/images/MWHCallToAction directory eg Brown.jpg the any new images choices should be added here and the actual images uploaded to the server.
{
None,
Announcement,
Attention,
ApprovedSoftware,
ComputerMouse,
DollarSign,
Email,
HelpDesk
}
//button theme (the type of image shown to teh left of the grey button text)
[DefaultValue(ButtonThemes.Announcement)]
[Description("Select the theme for the button.")]
[WebBrowsable(true)]
[Personalizable(PersonalizationScope.Shared)]
[Category("Button Properties")]
public ButtonThemes ButtonTheme
{
get;
set;
}
在此示例中,如果某人使用了已批准的软件主题 - 但我们在其之前添加了“注意”,那么当我们更新解决方案时,他们的主题可能会在Web部件中自动为“注意”。
我们可以在当前的值之后添加新值,但是寻找更优雅的东西。
干杯 富
答案 0 :(得分:0)
修好了。
为每个枚举项目分配一个值,这样就可以了
None,
Announcement = 1,
ApprovedSoftware = 2,
Attention = 4,
ComputerMouse = 3
希望这有帮助。