Как сохранить пользовательские входные данные элемента управления формы в веб-части? - PullRequest
1 голос
/ 10 июня 2019

Я следовал «Разработка пользовательского элемента управления формой» в документации kentico и создал пользовательский список.Я добавил список динамически в код позади, а НЕ добавляя его непосредственно в начало кода (ascx).Я использую список на одной из моих веб-частей, и все работает хорошо, когда я выбираю несколько элементов.Однако, когда я щелкаю, чтобы редактировать веб-часть, все выбранные элементы исчезают, и окно списка возвращается к своей первоначальной форме (ни один элемент не выбран).Поэтому мне интересно, как kentico сохраняет старые данные элемента управления формы в веб-части.

В коде ниже я воссоздаю свой сценарий с короткой версией.Я динамически добавляю список под панелью.

protected void EnsureItems()
  {
      // Create item and list box
      ListBox tab = new ListBox(); 

      ListItem item = new ListItem();
      item.Text = "test";

      tab.Items.Add(item);
      panel.Controls.Add(tab);
  }


protected void Page_Load(object sender, EventArgs e)
  {
      EnsureItems();
  }

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

Каждый элемент управления формы должен быть унаследован от FormEngineUserControl . И тогда Kentico использует свойство Value для хранения и извлечения значений из БД. Вот пример:

public override object Value
{
    get
    {
        return listBox.SelectedValue;
    }

    set
    {
        listBox.SelectedValue = ValidationHelper.GetString(value, string.Empty);
    }
}

По сути, ваш геттер должен возвращать некоторое значение, которое будет храниться в базе данных. А в установщике вы должны инициализировать свой список, заполнить данными и сделать выборку на основе значения , поступающего из базы данных.

0 голосов
/ 10 июня 2019

По сути, сам элемент управления формой не сохраняет данные в базу данных.Элемент управления формы привязан к какой-либо форме, и форма сохраняет данные в базе данных.Ознакомьтесь с документацией , касающейся пользовательских элементов управления .

...