【EasyUI DataGrid】实现跨页保持多选checkbox状态

       为了实现对EasyUi DataGrid的批量操作,需要对多行的数据进行选中,经过测试发现一个问题:进行多选的时候,经过翻页,上一页的数据选择状态被清空。然而在实际中这是不符合要求的,我们经过翻页上一页数据的选中状态应该仍然保持选中,而不是被清除。

       为了实现对dataGrid的多选操作,我们在datagrid中添加复选框,能够保持多选,复选框的代码如下所示:

这里写图片描述

       在上述中需要注意的是:field:cb,cb这个属性名可以任意的起名字,只要不和后台数据传过来的属性名一样就行。

       为了解决用户翻页选中的问题,需要在加入一个属性,如下所示:

这里写图片描述

       与此相对的问题就来了,我IdField后面的属性名能不能是cb呢?也就是复选框的那个属性列,然后你尝试了一下,发现没问题。就得出一个结论:在datagrid显示的属性列中的属性都可以跟在idField后面。

       事实上你得出的结论是错误的。然后就有人感到奇怪了?你是在逗我吗?我明明用cb这个属性都可以实现跨页选中了,然后配上我要批量操作的代码,功能也通了,你现在告诉我我的结论不正确,你是不是傻?

       不不不,我不傻,你也不傻。只是你考虑的情况太单一了,直接用截图证明我的结论吧。我的功能界面是这样子的:
这里写图片描述
       点击左边的一栏,在右面显示左边一栏的详细信息,不点击左边的默认显示左边第一栏的详细信息。下面我们跨页的代码用cb复选框试一下,也就是idField :'cb',看看会出现什么情况:

这里写图片描述

这里写图片描述

       就会有人说,这不是挺正常的吗,我点击全选按钮,两页内容全部都选中了。别急,我们接着往下看,当你点开培训编号为200002的培训项目时,你会发现如下的页面:
这里写图片描述

       当你再点击培训编号为201403的项目如下图所示:
这里写图片描述

       通过上图你会发现,idField后面的属性如果是全选框,会导致所有的培训信息都被选中,这不是我们想要的结果,这就是idField后的属性不用复选框的原因。
       综上所述:为了解决跨页多选的问题:一般情况下idField后的属性为主键,能唯一标识的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章