在update-spsolution上保留sharepoint Web部件中的枚举值

时间:2014-11-02 23:25:07

标签: enums sharepoint-2010

我们使用枚举作为自定义属性构建了一个可视化Web部件,以允许用户为按钮选择主题。主题列表是按字母顺序排列的。

我们现在有新主题要添加到Web部件,但是如果我们只是更新主题的枚举列表,在Web部件中的现有值之间添加新项目,那么使用此Web部件的任何人都可能获得不同的主题关于枚举值。

我已经发布了下面的代码,但我想我正在寻找有关如何最好地更新解决方案以及保留使用Web部件的人的现有值的建议。

现有

公共枚举ButtonThemes         //这些选项链接到/ _layouts / images / MWHCallToAction目录中的图像,例如Br​​own.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部件中自动为“注意”。

我们可以在当前的值之后添加新值,但是寻找更优雅的东西。

干杯 富

1 个答案:

答案 0 :(得分:0)

修好了。

为每个枚举项目分配一个值,这样就可以了

None,
Announcement = 1,
ApprovedSoftware = 2,
Attention = 4,           
ComputerMouse = 3

希望这有帮助。