powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / (JSF) Кликабельная таблица
7 сообщений из 7, страница 1 из 1
(JSF) Кликабельная таблица
    #34678327
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Волею судеб сейчас пишу для SAP web приложения, пользуясь их студией. Хочется избавиться от нее, перейдя на привычный JSF и нетбинс. И все бы ничего, но есть в студии одна деталь, которую я никак не найду как реализовать в JSF - там для выбора строки в таблице данных не нужно никаких радио-баттонов - они выглядят как обычные GUI гриды - т.е. можно кликнуть на строку, она (текущая строка) выделится другим цветом.
Как выделить цветом выбранную строку в JSF, я нашел, но для выбора все равно предлагается использовать колонку с радио-баттонами.
Есть ли решение этой задачи?
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34680405
Фотография re7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://component-showcase.icefaces.org/component-showcase/

table>table row selection
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34686242
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересная ссылка.
Но я попытался сделать выбор строки в обычной таблице, как описано тут http://blogs.sun.com/winston/entry/single_selectable_row_table_component

Все получилось. Я поставил подпоры. В onClick для TableRowGroup написал следующее:
Код: plaintext
1.
2.
3.
4.
var myName =  this .id + ':tableColumn4:myrb';
var rb = document.getElementById(myName);
rb.checked=true;
initAllRows();

А колонку с радиобатоном скрыл. Все работает по клику на строке, но не удобно, что не происходит сабмита, т.е. я не могу по клику что-то отработать на сервере. Тогда я добавил последней строкой в этот код

Код: plaintext
document.getElementById('form1').submit();

Все стало уходить на сервак, но опять появились проблемы - как выудить текущую выделенную строку?
В методе

Код: plaintext
1.
2.
3.
4.
5.
6.
     public   void  setSelected(Object object) {
        RowKey rowKey = (RowKey)getValue("#{currentRow.tableRow}");
         if  (rowKey !=  null ) {
            tablePhaseListener.setSelected(rowKey, object);
        }
    }
rowKey.getRowId() дает всегда максимальное значение (равное числу строк-1)

Если я начинаю обращаться к getTableRowGroup1().getSelectedRowKeys()[0].getRowId(), то я получаю номер строки, но таблица волшебным образом теряет способность сортироваться (т.е. я нажимаю на заголовки столбцов, сабмит есть, но сортировок нет).
Только что проверил, попробовал взять значение у радиобатона
getMyrb().getValue().toString()
(я кладу все это в текстовое поле), таблица тоже перестает сортироваться.

Мне уже интересно - что я делаю не так и как правильно?
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34688285
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamir

Код: plaintext
document.getElementById('form1').submit();

Все стало уходить на сервак, но опять появились проблемы - как выудить текущую выделенную строку?




Не думаю, что этого достаточно. Добавь в каждую строку по кнопке и посмотри на исходник получившейся страницы. А именно на кнопки в таблице, они при сабмите передают кучу параметров, вот по ним то, jsf engine и определяет, какая строка была выбрана.
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34688422
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessen pamir

Код: plaintext
document.getElementById('form1').submit();

Все стало уходить на сервак, но опять появились проблемы - как выудить текущую выделенную строку?




Не думаю, что этого достаточно. Добавь в каждую строку по кнопке и посмотри на исходник получившейся страницы. А именно на кнопки в таблице, они при сабмите передают кучу параметров, вот по ним то, jsf engine и определяет, какая строка была выбрана.
На самом деле я сам дурак. Надо четко представлять себе как работает фреймворк.
Метод setSelected(Object object) вызывается для каждой отрисовываемой страницы. Надо просто анализировать object - в моем случае, для всех строк он null, кроме выделенной, для нее он String, содержащий номер строки.
Так что все работает.
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34688425
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя осталось непонятным странное поведение таблицы, при обращении в этом методе к объектам, соответствующим элементам таблицы.
Странным, но не критичным, т.к. этого обращения теперь не будет.
...
Рейтинг: 0 / 0
(JSF) Кликабельная таблица
    #34688430
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamirвызывается для каждой отрисовываемой страницы .Я хотел сказать "каждой строки таблицы"
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / (JSF) Кликабельная таблица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]