找回密码
 立即注册

QQ登录

只需一步,快速开始

Gangz

注册会员

3

主题

7

帖子

30

积分

注册会员

积分
30
  • 110

    金币

  • 3

    主题

  • 7

    帖子

Gangz
注册会员   /  发表于:2022-11-29 16:16  /   查看:1311  /  回复:5
排序的数据源和排序结果都是服务端保证。但是前端排序效果的UI正常表示。可以实现么

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 16:26:37
推荐
本帖最后由 Richard.Ma 于 2022-11-29 16:43 编辑

我没有理解你的意思,你是要服务端排序后在前端显示排序后的数据,还是说显示未排序的数据?

这个其实和前端控件没有什么关系,只是看后端返回的数据是什么前端就显示什么

另外,wijmo有提供一个odata数据接口ODataCollectionView,可以直接实现和服务端的排序,过滤,分页交互,也就是说在客户端做上述操作的话,会放在odata服务端来执行,

https://www.grapecity.com/wijmo/ ... onView/OData/purejs
https://www.grapecity.com/wijmo/ ... w.html#sortonserver
回复 使用道具 举报
Gangz
注册会员   /  发表于:2022-11-29 16:46:22
板凳
详细来说是这样:
①Grid点击某列,在sortedColumn事件里获取要排序的列,传给服务端。
②服务端根据排序项目和升序/降序 返回数据给前端。
③前端拿到数据正常更新itemSource,UI侧排序的效果正常显示,但是Grid前端的排序逻辑不触发。



想要实现这个效果的原因是Grid的排序规则和Oracle的排序规则不同。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-29 18:20:02
地板
明白了,按照你目前做的,实际上web端的flexgrid确实是没有做排序的,只是应用了排序后的数据做为数据源。

按照你目前的逻辑,相当于不需要flexgrid的排序功能。只是需要点击列头的排序按钮触发排序事件,在后端排序完成更新到前端时候,这个排序图标更新为相应的上箭头或下箭头

你可以禁用wijmo的排序功能,只在点击列头后去处理点击事件,通过 formatItem事件来重新绘制列头的图标就行


回复 使用道具 举报
Gangz
注册会员   /  发表于:2022-11-29 19:39:03
5#
Richard.Ma 发表于 2022-11-29 18:20
明白了,按照你目前做的,实际上web端的flexgrid确实是没有做排序的,只是应用了排序后的数据做为数据源。
...

好的谢谢。      
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-30 09:16:47
6#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部