Приложение RichFaces, я должен использовать rich: dataTable или jQGrid, плюсы минусы? - PullRequest
3 голосов
/ 11 октября 2010

Исходя из здесь , мне нужно иметь встроенную редактируемую сетку в моем веб-приложении с использованием RichFaces 3.3.3, JSF 1.2 и Facelets.

Мои варианты rich:dataTableЭлемент управления RichFaces или плагин jQuery, jQGrid

Я пробовал оба варианта и до сих пор нашел следующее:

  1. jQGrid работает очень хорошо, но я неуверен, что произойдет, если я попытаюсь обновить элементы управления JSF из сетки, если это возможно?
  2. Я не решаюсь использовать модальные окна RichFaces из jQGrid или вызвать их, это может вызвать проблемы?Или я должен придерживаться простых модальных jQuery?
  3. , чтобы быть в безопасности, используя jQGrid, похоже, мне приходится много заниматься своими собственными сантехническими работами, теряя преимущества элементов управления richfaces?Я прав?
  4. rich: dataTable не имеет прокручиваемой таблицы с фиксированными заголовками.У richfaces есть прокручиваемая таблица, но при наличии поддержки встроенного редактирования возникают проблемы.(Заголовки исчезают, и редактирование не работает должным образом)
  5. rich: dataTable не очень настраиваемый, и в нем отсутствуют некоторые очень полезные функции, которые есть в jqGrid
  6. rich: dataTable имеет некоторые проблемы, которые кажутсянеразрешимый или потребуется js-взлом (например, создание строки, редактируемой одним щелчком мыши вместо двойного щелчка по умолчанию, вызывает проблемы, если вы используете элемент управления календаря внутри редактируемой строки, один щелчок внутри элемента управления календаря снова вызывает событие редактирования в строке, делаяВы теряете свои изменения в других областях).

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

1 Ответ

1 голос
/ 13 мая 2013

Я работал с ricfaces и JSF в течение 4-5 лет, а затем перешел на компоненты jQuery и Grails за последние 1,5 года. И вот мой взгляд на эту тему:

  1. В конечном итоге элементы управления JSF отображаются в виде компонентов HTML, поэтому я не вижу проблем с обновлением компонентов (если у вас вообще нет дескриптора идентификаторов, сгенерированных для элементов управления jsf, вы можете заключить элементы управления в div и затем обновить дела).
  2. IMHO - модалы jQuery довольно просты в использовании и более гибки, чем модальная панель RichFaces.
  3. Я не думаю, что это правильно, но без знания вашего варианта использования было бы трудно сказать. Я считаю, что одна вещь, которую вы потеряете, - это двустороннее связывание данных, предоставляемое компонентами jsf.

4,5,6 - благоприятствует jqGrid.

Преимущества использования JSF - поскольку ваш код на стороне сервера - JSF, вы получаете привязку данных, встроенную в ваши компоненты пользовательского интерфейса (оба пути - сервер-клиент и клиент-сервер). Другое дело, что внешний вид компонентов JSF будет соответствовать остальной части страницы. С jqGrid вам придется настроить тему.

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

Плюсы jqGrid - Богатые возможности и очень легко настраиваются. Я сделал - сетка дерева, замороженные столбцы, редактируемые столбцы, проверка клиента с помощью плагина qtip и т. Д.

Минусы jqGrid - только один способ привязки данных от сервера к клиенту. И для этого вам нужно будет написать некоторый код сервера для форматирования данных в структуру JSON перед отправкой их клиенту. Для привязки данных от клиента к серверу: вам нужно вручную отобразить параметры запроса в JSF-компонент.

Примечание: я не использовал jqGrid с бэкэндом JSF. Тем не менее, мой ответ основан на моем понимании того, как работает каждая структура.

...