比较JqGrid与XtraGrid

发布时间:2020-05-27 16:46:53 作者:张立达
来源:网络 阅读:499

此只能比较两者的功能优劣,实现某种功能、效果的方便性和效率。首先分别粗略介绍XtraGrid和jqGrid

  DevExpress是目前.net下最为强大和完整的UI控件库, XtraGrid是这个控件库中重要的控件之一。在XtraGrid中集成了大量的高级特征,所以使用它进行开发的人员只需要对其属性进行简单的设置或编 写少量的代码,就能创建出十分美观的界面,从而使开发的工作效率大幅提高。

  特点如下

 

 

 

  jqGrid是一个jQueryplugin,提供grid操作界面,并支持经Ajax连结服务器上的资料源。jqGrid在共同的基础结构上,提供数种操作模式,分别包装于不同的档案之中。除了共享的数个档案之外,使用者按需要选择操作模式,并使用对应的程序档。可惜各操作模式之间常见功能雷同之处,程序重用性却未进一步整合、提升,而各模式的更新速度也不太一致。

  特点如下

   

两者的不同归结为以下方面:

表格视图

  XtraGrid中有4种类型的View,它们分别是:GridView(二维表格视图)、BandedGridView(带状二维表格视图)、AdvBandedGridView(高级的带状二维表格视图,增加了一些操作功能)、CardView(卡片视图)。这4种类型的View都是从ColumnView中继承而来,而ColumnView又是从BaseView继承来的。其中BaseView和ColumnView都是抽象类(abstract),不能实例化。

  由于每种视图都是一个类,它们对基类ColumnView重写不尽相同,故某些效果在一种视图上可以实现,换了另一种视图就不行了。

  jqGrid同样也有二维表格视图,带状二维表格视图,树状视图。

  对于二维表格视图与带状表格视图,它们的区别只在于在属性处添加多一个表头分组,对表格的操作完全一样,故更换视图的类型后其实现功能和效果不会有差异。

模板列

     XtraGrid提供比较丰富的模板列类型,但是在自定义模板方面就欠缺了,一个模板列只能使用一种类型,比如在一个列里头想放一个不可编辑的文本框,一个图片按钮,还有一个日历控件,这样就办不到了。而且那个模板列里只能使用XtraGrid它定义的那套模板列类型,想使用自己定义的类型或者用微软原本定义的控件也不行。用它原本的控件好处是get/set值比较方便,同时也使得模板没办法使用别的控件。

  jqGrid它本身没有提供模板列类型,就像.NET本身的GridView那样,可以往模板里添加多个控件,个人感觉jqGrid的模板列很自由很开放,可以在模板中可以放置一个或多个控件,可以是自己写的,也可以是其他的插件。

分页

  XtraGrid提供了分页栏,只需要把gridControl 的UseEmbeddedNavigator 属性设为true则可。XtraGrid实现分页功能有两种办法,一种则是利用XtraGrid本身的Server Mode模式 。但这种方式有诸多弊端:1)不能编辑、增加、删除数据; 2)不能通过显示值来进行排列和过滤数据(但可以用编辑值来进行这些操作);3)用户排序时不触发ColumnView.CustomColumnSort事件; 4)用户分组时不触发GridView.CustomColumnGroup事件; 5)用户计算汇总时不触发GridView.CustomSummaryCalculate事件; 6)在Server Mode模式下,数据表的主键不能由多个列组合而成。另一种方式就是利用SQL的分页查询。

  jqGrid也提供了分页栏,它的分页方式与XtraGrid的第二种方式类似,采用SQL的分页查询。

  个人认为采用SQL分页查询来实现分页这方式比较好,即使XtraGrid的Server Mode模式不存在那么多的弊端,使用了Server Mode模式,万一将来的某一天更换了控件,甚至从C/S模式换成B/S模式,这样要更改的代码量会比利用SQL分页查询的代码量要大。

数据源

  XtraGrid的数据源绑定与传统GridView的数据源绑定有所不同,经过绑定的操作后,XtraGrid上的数据仍然与数据源的数据同步,即修改了XtraGrid里的数据,数据源的数据也同样会被修改,修改了数据源的数据,XtraGrid里的数据也会跟着被修改。而且它可以很方便地获取到某一行记录的对象,比如将一个List<People>绑定到XtraGrid中,XtraGrid可以通过 GetRow 方法获取某行的People对象。还有一个优点就是若想批量修改某些数据,可直接对数据源进行操作,这样就不需要遍历单元格去修改。

  jqGrid绑定了数据源之后,表格里的数据与数据的数据就与GridView的情况一样,两者是不相关的,修改了一方的数据,对另一方没有任何影响。

 

 

总结 

  综合了jqGridXtraGrid的优点,个人认为一个好的网格类控件(或插件)除了有绚丽的外观以外,还应该具备以下功能:

以上纯属个人看法,有什么不足缺漏或错误的,欢迎指正。


推荐阅读:
  1. 排序算法比较与分析
  2. 如何进行XtraGrid滚轮翻页

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

grid jq gr

上一篇:Python系统模块sys的功能有哪些?

下一篇:Elasticsearch 集群自我保护配置

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》