Отсутствует мой пользовательский свойство WebPart, что я пропустил в моем коде?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/112021

Вопрос

Я использую 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 года.

Создание свойств в 2013 году веб-частей

Создание паента в 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 Статья

Надеюсь, это поможет вам

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top