easyui datagrid 根据关键字值取行以及idField的注意事项

本文探讨了在使用EasyUI datagrid组件时,如何有效地管理选中项,特别是针对idField属性的使用进行了深入分析。文章指出了设置idField可能导致的问题,并提供了相应的解决方案。



var rowIndex = $('#tt').datagrid('getRowIndex', id);//id是关键字值  
var data = $('#tt').datagrid('getData').rows[rowIndex];  
var oname = data.operator;//operator是属性值

$("#grid").datagrid({
            idField : 'id',
            title : '',
            url : '',
            fit : true,
            loadMsg : '数据加载中...',
            pageSize : 10,
            pagination : true,
            sortOrder : 'asc',
            rownumbers : true, // 显示行号
            singleSelect : false,
            fitColumns : false,
            striped : true,
            showFooter : true,
            frozenColumns : [ [] ],
            columns : [ [] ],
            onLoadSuccess : function(data) {
                grid.datagrid("clearSelections");
            },
            onClickRow : function(rowIndex, rowData) {
               
            }
  });

var rows = $(grid).datagrid('getSelected');


发现在datagrid设置idField后,尽管在onLoadSuccess里有清除选中状态,但是在rows里仍会有上一页的选中记录值。

这样的话,批量删除功能,将会导致数据删除错误。所以不能设置idField。到这儿我们就了解了idField的注意事项。


注意1

这里要强调的是selectedRows中的值只能通过取消选择,或者unselectAll取消 【当前页】 的选择,即使重新加载数据,或者清空数据,都不会影响selectedRows中的值。想要取消全部选择怎么办?你可以使用clearSelections方法:

<code class="language-javascript hljs  has-numbering">$(<span class="hljs-string">'#id'</span>).datagrid(<span class="hljs-string">'clearSelections'</span>);</code>

当你只想获取当前页的选择项时,最好的解决方法就是不设置idField属性。否则就要自己处理好调用clearSelections的时机。

注意2

合理的使用idField还可以实现翻页选择(checkbox一样),这种情况下,你的datagrid能记住每一页的选中情况,而且通过getSelections(或getChecked)来获取所有页中选中的行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值