zoukankan      html  css  js  c++  java
  • easyui datagrid 根据关键字值取行以及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)来获取所有页中选中的行。

  • 相关阅读:
    磁盘相关命令
    shell $用法
    setuid setgid stick bit 特殊权限 粘滞位
    运维面试题2
    mysql 外键约束
    创建MySQL 用户
    shell 脚本定时创建月份表
    apache 配置多个虚拟主机,不同的端口
    sublime3中文乱码解决包ConvertToUTF8.zip
    yii2安装
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317757.html
Copyright © 2011-2022 走看看