RichFaces: освободить столбцы сортировки DataTable, когда включен режим сортировки по нескольким столбцам.

В настоящее время я разрабатываю проект (JSF 2.0, RichFaces 3.3.3), в котором мне нужно получить таблицу данных с двумя столбцами с включенной сортировкой по нескольким столбцам (я уже сделал это с помощью свойства sortMode="Multi"), но, в отличие от сортировки по одному столбцу, в случае нескольких столбцов я не могу освободить столбец или столбцы, для которых выполняется сортировка (это делается в случае одного столбца, щелкнув заголовок другого столбца).

Порядок сортировки блокируется во время сеанса: даже при переключении между вкладками мое веб-приложение сохраняет текущие настройки сортировки столбцов. Мне нужно восстановить эту конфигурацию в рамках сеанса, чтобы позволить пользователю выбрать другой порядок сортировки, потому что в настоящее время единственный способ сбросить его — выйти из системы и снова войти.

Пример: когда пользователь выполняет сортировку по столбцу A, а затем по столбцу B (или наоборот), и учитывая, что я также использую свойство sortPriority (это требование, которое я не могу изменить), комбинация пары AB блокируется, пока текущая сессия открыта. Когда пользователю нужно отсортировать DataTable только по одному столбцу (отсортировать по A или B), невозможно получить это в том же сеансе после выполнения сортировки по нескольким столбцам. .

Есть ли способ добиться нужного мне "выпуска комбинированной сортировки столбцов"?

Заранее спасибо.

ОБНОВИТЬ:

Я понял, что только с двумя столбцами данных в моей таблице данных единственный способ сделать это — каким-то образом переключить свойство sortMode между значениями "Multi" и "Single". Таким образом, я мог бы гарантировать, что в режиме сортировки по одному столбцу он освободит комбинацию столбцов.

Кто-нибудь успешно работал с ситуацией, когда приходится присваивать значения свойствам rich:dataTable компонентов во время выполнения с помощью javascript?


person Francisco Alvarado    schedule 25.05.2011    source источник


Ответы (1)


Ознакомьтесь с атрибутами sortBy и sortOrder файла rich:dataTable. и rich:column. Установив sortOrder="UNSORTED" на rich:column, он должен очистить сортировку этого столбца. Вы также можете установить sortOrder="UNSORTED" и/или sortBy="" на самом rich:dataTable для более простого решения (хотя я не пробовал). Вы можете сделать это в функции JavaScript onLoad или в bean-компоненте, атрибуты которого привязаны к его свойствам.

Надеюсь, это будет немного элегантнее, чем играть с sortMode :)

person Gyan aka Gary Buyn    schedule 03.06.2011