Могу ли я создать расширяемый список для Listitem в ZK? - PullRequest
0 голосов
/ 11 февраля 2020

Могу ли я добавить Listbox как дочерний элемент к Listitem, когда выбран элемент списка? В настоящее время я работаю с hybris, и я попробовал следующий код:

    Listitem listitem = new Listitem();
    listitem.setValue(123);
    listitem.setParent(this.secondListBox);
    this.secondListBox.addItemToSelection(listitem);

и

 private EventListener<Event> getListBoxListener() {
    return (event -> {

        this.listBox.getSelectedItems().forEach(listItem -> {
            listItem.appendChild(this.secondListBox);
        }); 
     });
}

(код приведен только для целей тестирования!)

Я хочу получить расширяемый список для каждого Listitem с помощью этого подхода, но я получаю эту ошибку:

Неподдерживаемый дочерний элемент для listitem:

Я знаю, что ошибка уже отвечает на мой вопрос, но есть ли другой способ сделать это? Спасибо.

1 Ответ

0 голосов
/ 28 февраля 2020

<listitem> поддерживает <listcell> дочерние элементы , которые затем позволяют произвольные дочерние компоненты . Таким образом, вам просто нужно создать ячейку списка вокруг вложенного списка.

<listbox>
  <listhead>
    <listheader label="outer"/>
  </listhead>
  <listitem>
    <listcell>
      <listbox>
        <listhead>
          <listheader label="nested"/>
        </listhead>
        <listitem label="nested"/>
      </listbox>
    </listcell>
  </listitem>
</listbox>

для запуска на zkfiddle

или в вашем случае:

Listcell cell = new Listcell();
cell.appendChild(this.secondListBox);
listItem.appendChild(cell);

однако вы не можете добавить один и тот же экземпляр "secondListbox" в несколько ячеек списка. Вы просто переместите его, и он будет привязан к последнему родительскому элементу списка, к которому вы добавите его.

...