求助easyui框架中--datagrid的相关知识,谢谢大神们

我曾一搏 发布于 2017/03/11 12:28
阅读 285
收藏 0

问题一:datagrid每一行中的复选框的checked为true, 但是复选框中没有勾选符号(没有处于勾选状态);这是为何?如何让每个复选框勾上;

 

问题二:datagrid如何清除数据缓存

加载中
0
Kit_lee
Kit_lee

检查一下你datagrid的配置项singleSelect是否为true,为false则为多选,选择的时候默认首列的复选框都会被先中

同时datagrid也有方法$().datagrid('checkAll'),选中全部复选框

不知道你的data是否为ajax获取,去缓存可以在取值的ajax地址加个随便参数,也可以是时间的long值,如 url: 'xxxxx.do?t='+new Date().getTime()

0
我曾一搏

引用来自“Kit_lee”的评论

检查一下你datagrid的配置项singleSelect是否为true,为false则为多选,选择的时候默认首列的复选框都会被先中

同时datagrid也有方法$().datagrid('checkAll'),选中全部复选框

不知道你的data是否为ajax获取,去缓存可以在取值的ajax地址加个随便参数,也可以是时间的long值,如 url: 'xxxxx.do?t='+new Date().getTime()

都还有问题的,

问题一datagrid(“checkall”)的话是能够选中全部复选框但是,我在分页情况下要选中当前页全部复选框的时候却出现选中整个datagrid所有的复选框;

问题二,已经试过加参数以及用cache:false都没有起到清除数据缓存的作用

0
Kit_lee
Kit_lee

可能帖上代码好分析一下

0
我曾一搏

引用来自“Kit_lee”的评论

可能帖上代码好分析一下

<a href="javascript:executeAllMethod();"
                                    class="easyui-linkbutton" style="padding-left: 18px">全部执行</a></td>

<table id="dg" class="easyui-datagrid"
                    data-options="userCaseSuccess:userCaseSuccess,onUncheck:uncheckOne,onCheckAll:checkAll,onUnCheckAll:uncheckAll,rownumbers:true,checkbox:true,checkOnSelect:true,selectOnCheck:true,singleSelect: false,autoRowHeight:false,idField:'id',pagination:true,pageSize:10">jsp页面代码,

js代码:全部勾选:function executeAllMethod(){
    $('#dg').datagrid('checkAll')

}

 

分页勾选:function checkAll(rows){

    for(var i=0;i<rows.length;i++){
                rows[i].checked=true;
                console.log(rows1);    
                 checkAll();
        
    
     }

}

代码就是这样

0
Kit_lee
Kit_lee

首先当你$('#dg').datagrid('checkAll')的时候,datagrid就给你选中所有了,但是你又定义了个onCheckAll:checkAll,又手工跑一个设置复选框选中的动作,我觉得你可以去掉这个onCheckAll和onUnCheckAll事件方法,或者就解决你的问题一,只需要$('#dg').datagrid('checkAll')即可

然后datagrid的内容你是用jsp输出,我觉得应该检查一下jsp里边的代码,感觉跟页面缓存应该没多大关系

0
我曾一搏

引用来自“Kit_lee”的评论

首先当你$('#dg').datagrid('checkAll')的时候,datagrid就给你选中所有了,但是你又定义了个onCheckAll:checkAll,又手工跑一个设置复选框选中的动作,我觉得你可以去掉这个onCheckAll和onUnCheckAll事件方法,或者就解决你的问题一,只需要$('#dg').datagrid('checkAll')即可

然后datagrid的内容你是用jsp输出,我觉得应该检查一下jsp里边的代码,感觉跟页面缓存应该没多大关系

如果我将onCheckAll和onUncheckAll事件方法取消掉,那我没办法在分页的时候实现只勾选到当前页不勾选其他页,而是勾选到所有了。

0
Kit_lee
Kit_lee

引用来自“Kit_lee”的评论

首先当你$('#dg').datagrid('checkAll')的时候,datagrid就给你选中所有了,但是你又定义了个onCheckAll:checkAll,又手工跑一个设置复选框选中的动作,我觉得你可以去掉这个onCheckAll和onUnCheckAll事件方法,或者就解决你的问题一,只需要$('#dg').datagrid('checkAll')即可

然后datagrid的内容你是用jsp输出,我觉得应该检查一下jsp里边的代码,感觉跟页面缓存应该没多大关系

引用来自“我曾一搏”的评论

如果我将onCheckAll和onUncheckAll事件方法取消掉,那我没办法在分页的时候实现只勾选到当前页不勾选其他页,而是勾选到所有了。

你可以让每次输出只输出一页的内容,而不是输出所有页,然后让datagrid分页。

用datagrid的url属性指定一个返回一页json数据的接口

0
我曾一搏

引用来自“Kit_lee”的评论

首先当你$('#dg').datagrid('checkAll')的时候,datagrid就给你选中所有了,但是你又定义了个onCheckAll:checkAll,又手工跑一个设置复选框选中的动作,我觉得你可以去掉这个onCheckAll和onUnCheckAll事件方法,或者就解决你的问题一,只需要$('#dg').datagrid('checkAll')即可

然后datagrid的内容你是用jsp输出,我觉得应该检查一下jsp里边的代码,感觉跟页面缓存应该没多大关系

引用来自“我曾一搏”的评论

如果我将onCheckAll和onUncheckAll事件方法取消掉,那我没办法在分页的时候实现只勾选到当前页不勾选其他页,而是勾选到所有了。

引用来自“Kit_lee”的评论

你可以让每次输出只输出一页的内容,而不是输出所有页,然后让datagrid分页。

用datagrid的url属性指定一个返回一页json数据的接口

你这是在后台contraller里完成的吧,没有这个api呀

0
Kit_lee
Kit_lee

引用来自“Kit_lee”的评论

首先当你$('#dg').datagrid('checkAll')的时候,datagrid就给你选中所有了,但是你又定义了个onCheckAll:checkAll,又手工跑一个设置复选框选中的动作,我觉得你可以去掉这个onCheckAll和onUnCheckAll事件方法,或者就解决你的问题一,只需要$('#dg').datagrid('checkAll')即可

然后datagrid的内容你是用jsp输出,我觉得应该检查一下jsp里边的代码,感觉跟页面缓存应该没多大关系

引用来自“我曾一搏”的评论

如果我将onCheckAll和onUncheckAll事件方法取消掉,那我没办法在分页的时候实现只勾选到当前页不勾选其他页,而是勾选到所有了。

引用来自“Kit_lee”的评论

你可以让每次输出只输出一页的内容,而不是输出所有页,然后让datagrid分页。

用datagrid的url属性指定一个返回一页json数据的接口

引用来自“我曾一搏”的评论

你这是在后台contraller里完成的吧,没有这个api呀

让后台弄一个API吧,不可能一次把所有数据推到前端啊?以后数据多了后,这部分功能的性能会下降的

返回顶部
顶部