Vaadin пользовательский заголовок таблицы - PullRequest
1 голос
/ 24 ноября 2010

Я хочу создать собственный заголовок фильтрации для таблиц Vaadin.

Не могли бы вы привести несколько примеров или решение этой проблемы.

Я хочу добавить поле со списком или флажок, которыйУточните поиск в таблице как столбцы Excel.

Ответы [ 3 ]

5 голосов
/ 17 января 2013

Мы столкнулись с проблемой добавления пользовательских фильтров для Vaadin Table в нашем проекте.

В качестве решения мы добавили динамическую форму фильтра над таблицей.Он стал гибким и достаточно гибким для применения фильтров.

Мы создали Vaadin Addon, чтобы поделиться нашим решением - Lexaden Grid.

Дополнительную информацию можно найти по следующей ссылке:

http://www.lexaden.com/main/entry/lexaden_grid

3 голосов
/ 25 ноября 2010

В настоящее время довольно сложно добавить пользовательский компонент для фильтрации в заголовок таблицы. Это потребовало бы от вас создания собственной версии Table с помощью наследования / копирования и вставки (не уверен, что этого достаточно), и это то, чего большинство людей не хотят избегать в настоящий момент, если это возможно. Текущая реализация компонента Table является одним из самых сложных компонентов Vaadin. Это выполнимо, если вы настаиваете на размещении компонентов в заголовке, но готовитесь к серьезным размышлениям, чтобы заставить вещи работать.

Я бы предложил сделать фильтрацию данных в контейнерах с компонентами, расположенными рядом с вашей таблицей. Скрытие заголовка таблицы иногда допустимо, если там не показана важная информация. Если вы хотите что-то точно в заголовке, это потребует некоторых пустых заголовков и CSS-компонентов позиционирования в правильном месте.

Вы всегда можете сгруппировать таблицу и другие компоненты фильтрации в один CustomComponent для упрощения абстракции.

2 голосов
/ 24 ноября 2010

Книга Ваадина - очень хороший справочник по реализации Ваадина.Ссылка состоит из примера кода, например:

// Define the properties
table.addContainerProperty("lastname", String.class, null);
table.addContainerProperty("born", Integer.class, null);
table.addContainerProperty("died", Integer.class, null);
// Set nicer header names
table.setColumnHeader("lastname", "Name");
table.setColumnHeader("born", "Born");
table.setColumnHeader("died", "Died");

Это то, что вы просите?Если это не так, не могли бы вы задать свой вопрос немного более четко?

edit: Vaadin Sampler также содержит несколько примеров кода.

...