RichFaces应用程序,我应该使用rich:dataTable还是jQGrid,pros cons?

时间:2010-10-10 23:44:18

标签: jsp jsf jqgrid richfaces facelets

here之后,我需要在我的网络应用程序中使用RichFaces 3.3.3,JSF 1.2和Facelets建立一个内联可编辑网格。

我的选项是rich:dataTable RichFaces控件,或jQuery插件,jQGrid

到目前为止,我已经尝试了两种方法并找到了以下内容:

  1. jQGrid工作得很好,但我不确定如果我尝试从网格刷新JSF控件会发生什么情况,如果可能的话?
  2. 我对从jQGrid使用或触发RichFaces模态窗口犹豫不决,这会导致问题吗?或者我应该坚持使用简单的jQuery模式吗?
  3. 为了安全使用jQGrid看起来我必须做很多自己的管道,失去了richfaces控件的好处?我是对的吗?
  4. rich:dataTable没有固定标题的可滚动表。 richfaces有一个可滚动的表,但是支持内联编辑会产生问题。 (标题消失,编辑无法正常工作)
  5. rich:dataTable不是很容易定制,并且缺少一些非常好的jqGrid具有的功能
  6. rich:dataTable有一些似乎无法解决或需要js黑客攻击的问题(例如,如果您在可编辑行内使用日历控件,只需单击一次,就可以单击一行而不是默认双击导致问题日历控件在该行上再次触发编辑事件,使您在其他字段中丢失更改。)
  7. 除了上面的一些问题之外,我想知道每种问题的优点和缺点是什么,以及从长远来看哪种方法更容易维护,扩展和完善。

1 个答案:

答案 0 :(得分:1)

我已经使用ricfaces和JSF工作了4 - 5年,然后转向使用jQuery组件和Grails过去1。5年。这是我对这个主题的看法:

  1. 最终JSF控件呈现为HTML组件,所以我没有看到刷新组件的任何问题(如果你没有处理为jsf控件生成的id,你可以用div包围控件然后刷新DIV)。
  2. 恕我直言 - jQuery模式使用起来非常简单,比RichFaces模态面板更灵活。
  3. 我不认为这是正确的,但如果不知道您的用例,就很难说清楚。我相信你将失去的一件事是jsf组件提供的双向数据绑定。
  4. 4,5,6 - 赞成jqGrid。

    使用JSF的优点 - 由于您的服务器端代码是JSF,因此您可以获得内置于UI组件中的数据绑定(两种方式 - 服务器到客户端和客户端到服务器)。另一件事是JSF组件的外观与页面的其余部分相匹配。使用jqGrid,您必须自定义主题。

    使用JSF的缺点:datatable不是非常可定制的,与jqGrid相比并不那么丰富。因此,如果您有一个复杂的用户界面,并且您意识到通过rich:dataTable不支持特定的UI功能,那么除了使用其他一些组件或者放弃该功能外,您别无选择。

    jqGrid的优点 - 功能丰富,非常容易定制。我已经完成了 - treegrid,冻结列,可编辑列,使用qtip插件进行客户端验证等。

    jqGrid的缺点 - 只有一种方式从服务器到客户端的数据绑定。为了实现这一点,您必须编写一些服务器代码,以便在将数据发送到客户端之前将数据格式化为JSON结构。对于从客户端到服务器的数据绑定:您必须手动将请求参数映射到JSF bean。

    注意:我没有将jqGrid与JSF后端一起使用。但是,我的回答是基于我对每个框架如何运作的理解。