Отсутствует мой пользовательский свойство WebPart, что я пропустил в моем коде?
-
29-09-2020 - |
Вопрос
Я использую SharePoint 2013. У меня разработал визуальный веб-сайт в Visual Studio 2013. Я добавил этот код в кодовом режиме моего WebPart:
public partial class VisualWebPart1UserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void CreateChildControls()
{
base.CreateChildControls();
}
[WebPartStorage(Storage.Shared)]
[Personalizable(PersonalizationScope.Shared)]
[FriendlyNameAttribute("Update interval")]
[Description("Insert feed update interval")]
[WebBrowsable(true)]
[Category("Message Configuration")]
public int UpdateInterval { get; set; }
}
.
Я развернул веб-панель.Я добавляю WebPart на свою домашнюю страницу.Я нажимаю на редактировать WebPart и увидеть прямо выше всех категорий и свойств.Но я не вижу свою пользовательскую категорию «Конфигурация сообщений».Я пропускаю также мою собственную собственность «Обновлять интервал» в существующих категориях.
Я скучаю что-то в моем коде?Я хотел бы иметь только пользовательскую собственность сделать что-то управлять администраторами сайта.
Я сделал экспорт мой WebPart в SharePoint.Я открыл файл .webpart в notepad ++.И я вижу это ниже.Я не вижу кастомную собственность!
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="VisualWebPartProject1.VisualWebPart1.VisualWebPart1, VisualWebPartProject1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c139f77c8f6182b2" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="ExportMode" type="exportmode">All</property>
<property name="HelpUrl" type="string" />
<property name="Hidden" type="bool">False</property>
<property name="Description" type="string">My Visual Web Part</property>
<property name="CatalogIconImageUrl" type="string" />
<property name="Title" type="string">VisualWebPartProject1 - VisualWebPart1</property>
<property name="AllowHide" type="bool">True</property>
<property name="AllowMinimize" type="bool">True</property>
<property name="AllowZoneChange" type="bool">True</property>
<property name="TitleUrl" type="string" />
<property name="ChromeType" type="chrometype">Default</property>
<property name="AllowConnect" type="bool">True</property>
<property name="Width" type="unit" />
<property name="Height" type="unit" />
<property name="HelpMode" type="helpmode">Navigate</property>
<property name="AllowEdit" type="bool">True</property>
<property name="TitleIconImageUrl" type="string" />
<property name="Direction" type="direction">NotSet</property>
<property name="AllowClose" type="bool">True</property>
<property name="ChromeState" type="chromestate">Normal</property>
</properties>
</data>
</webPart>
</webParts>
. Решение
Вы уверены, что создали проект в качестве проекта в 2013 году? Похоже, вы используете шаблон 2010 года для веб-частей. В 2013 году Visual WebPart - это класс, наследующий из WebPart. В 2010 году есть два класса, которые наследовали из веб-части, и тот, который наследует от usercontrol. В 2010 году в классе WebPart есть всего несколько строк кода, которые загружают USERCONTROL. Итак, в 2010 году, вот где проходят свойства (в классе WebPart, а не класс Usercontrol.)
Итак, ваш код выглядит хорошо для веб-части на основе 2013 года.
Редактирование: ваш код свойств выглядит нормально для веб-части на основе 2013 года, но тот факт, что он наследует от USERCONTROL означает, что это веб-часть на основе 2010 года.
Другие советы
Вы забыли имя (WebDisplayName
):
[WebBrowsable(true),
WebDisplayName("Text Input"), //<----------------Needs a name
WebDescription("This Accepts text Input"),
Personalizable(PersonalizationScope.Shared),
Category("My Category")]
public string TextProperty1 { get; set; }
.
Попробуйте добавить WebDisplayName("your field name")
и убедитесь, что последний код выглядит так
[WebBrowsable(true),
WebDisplayName("Project ID"),
WebDescription("Enter Project Number"),
Personalizable(PersonalizationScope.Shared),
Category("Project Settings")]
public string ProjectID { get; set; }
.
Кроме того, вы можете проверить детали шаги в Создать пользовательские свойства WebPart для Visual WebPart в SharePoint 2010-2013 Статья
Надеюсь, это поможет вам