Для того чтобы сделать возможным ввод параметров через свойства веб-части Sharepoint, необходимо всего лишь при разработке веб-части написать несколько строчек кода. Возможность указывать в настройках веб-части какие-то значения (например, источник данных, возможность выбора полного или сокращенного режима просмотра и т.д.) очень полезно на практике.
Выберем для создания Empty Sharepoint Project и назовем его CustomVarsWebParts (Рис.1)
Метод разворачивания – Deploy as farm solution (Рис.2)
Правый клик на решение -> Add -> New Item (или нажмите Ctrl + Shift + A) и выберите WebPart (Рис.3)
Для добавления полей дополнительных настроек необходимо написать примерно такой код:
1 2 3 4 5 6 7 8 9 | [Category("Extended Settings"), Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Показывать да / нет"), WebDescription("Варианты настройки: да/нет")] public Boolean isShowFullList { get; set; } |
В поле Category вводится название секции, где будет отображаться ввод переменной.
Указанный выше пример добавит возможность установки чекбокса в настройки веб-части.
Ниже примеры для других настроек веб-части:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | //Просто строка [Category("Мои кастомные настройки"), Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Выберите цвет"), WebDescription("Основной цвет текста, например, #FF0000")] public String setColorText { get; set; } //Ввод даты [Category("Мои кастомные настройки"), Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Укажите дату"), WebDescription("Введите дату для построения запроса по умолчанию")] public DateTime myDateTime { get; set; } //Выбор из выпадающего списка public enum mySeason { Winter = 0, Spring, Summer, Autumn }; [Category("Мои кастомные настройки"), Personalizable(PersonalizationScope.Shared), WebBrowsable(true), WebDisplayName("Значение из списка"), WebDescription("Выберите необходимое значение из списка")] public mySeason Season { get; set; } |