• 55. GridPanel中getSelectionModel详解


    转自:https://blog.csdn.net/qq_29663071/article/details/50728429
    本文导读:Ext.grid.GridPanel继承自Panel,其xtype为grid,包括了排序、缓存、拖动、隐藏某一列、自动显示行号、列汇总、单元格编辑等实用功能。 当我们需要获取选择的数据时,就需要用到getSelectionModel方法。下面介绍GridPanel中getSelectionModel的操作。

    一、Ext.grid.GridPanel


    主要配置项:


    store:表格的数据集
    columns:表格列模式的配置数组,可自动创建ColumnModel列模式
    autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0
    stripeRows:表格是否隔行换色,默认为false
    cm、colModel:表格的列模式,渲染表格时必须设置该配置项
    sm、selModel:表格的选择模式,默认为Ext.grid.RowSelectionModel
    enableHdMenu:是否显示表头的上下文菜单,默认为true
    enableColumnHide:是否允许通过标题中的上下文菜单隐藏列,默认为true


    loadMask:是否在加载数据时显示遮罩效果,默认为false
    view:表格视图,默认为Ext.grid.GridView
    viewConfig:表格视图的配置对象
    autoExpandMax:自动扩充列的最大宽度,默认为1000
    autoExpandMin:自动扩充列的最小宽度,默认为50
    columnLines:是否显示列分割线,默认为false
    disableSelection:是否禁止行选择,默认为false
     

    enableColumnMove:是否允许拖放列,默认为true
    enableColumnResize:是否允许改变列宽,默认为true
    hideHeaders:是否隐藏表头,默认为false
    maxHeight:最大高度
    minColumnWidth:最小列宽,默认为25
    trackMouseOver:是否高亮显示鼠标所在的行,默认为true


    主要方法:


    getColumnModel():取得列模式
    getSelectionModel():取得选择模式
    getStore():取得数据集
    getView():取得视图对象
    reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一个新的数据集和列模式重新配置表格组件

    二、getSelectionModel获取选择的行可以进行如下操作

     
    JScript 代码   复制

    
    var model = grid.getSelectionModel();  
    model.selectAll();//选择所有行  
    model.selectFirstRow();//选择第一行  
    model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false  
    model.selectNext();//选择下一行  
    model.selectPrevious();//选择上一行  
    model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行  
    model.selectRow(row);//选择某一行  
    model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行  
    model.clearSelections();//清空所有选择  
    model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态  
    model.deselectRow(row);//取消指定行的记录
    grid.getSelected().id //得到选中的行的标识
    
    
    var getSelect=function (grid, col)
    { //获取选中grid的列
            var st="";
            for (var i = 0; i < grid.getSelectionModel().getSelections().length; i++) 
            {
                       st+=grid.getSelectionModel().getSelections()[i].get("'"+col+"'")+",";
            }
    }


    grid.getSelectionModel的所有操作

       1. var model = grid.getSelectionModel();  
       2. model.selectAll();//选择所有行  
       3. model.selectFirstRow();//选择第一行  
       4. model.selectLastRow([flag]);//选择最后一行,flag为正的话保持当前已经选中的行数,不填则默认false  
       5. model.selectNext();//选择下一行  
       6. model.selectPrevious();//选择上一行  
       7. model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//选择范围间的行  
       8. model.selectRow(row);//选择某一行  
       9. model.selectRows(rows);//选择指定一些行,传递数组如[1,3,5],则分别选择1,3,5行  
      10.   
      11.   
      12. model.clearSelections();//清空所有选择  
      13. model.deselectRange( startRow, endRow );//取消从startrow到endrow的记录的选择状态  

      14. model.deselectRow(row);//取消指定行的记录


    extjs获取Grid中某一行某一列的值

    选中某一行,var record = grid.getSelectionModel().getSelection();
    一行的所有数据都在record里面
    具体某一列:record.get("列名-dataIndex")

    extjs获取store的值

    grid.getStore().each(function(record){
    var value = record.get("field_name");
    });
    store 中each()方法的使用应在load完使用,确切的说应该在on('load')事件中使用,
    不懂就看一下下面的例子吧!。。。

      1. //获得store,这里假如store里有3条记录。  
      2.   
      3. var i = 0;  
      4. var ds = grid.getStore();  
      5. \  
      6.   
      7. //以下是正确与不正确的例子  
      8. 1)错误例子  
      9. ds.each(function(rec)  
      10. { i++; }  
      11. );  
      12. result : i = 0;//表明each没有执行或此方法在数据加载前执行(后者的可能行更大)  
      13. 2)正确例子  
      14. ds.on('load',function(store,records){  
      15. store.each(function(rec)  
      16. { i++; }  
      17. );  
      18. });  
      19. result: i = 3;  
      20.   
      21. 下面看一下如何使grid中的checkBox为选中状态  
      22.   
      23. var sm = grid.getSelectionModel();//get the seletion model  
      24.   
      25. ds.on('load',function(store,records){  
      26. store.each(function(rec) {  
      27.   
      28. //判断条件  
      29. if(....)  
      30. { sm.selectRecords([rec]); }  
      31. );  
      32. }); 
  • 相关阅读:
    机器学习项目流程
    机器学习之数据归一化问题
    python三数之和
    从不订购的客户
    case when then的用法-leetcode交换工资
    .NET Core Api 集成 swagger
    .NET CORE 2.1 导出excel文件的两种方法
    Dapper的基本使用
    (转)深入研究MiniMVC之后续篇
    (转)深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的
  • 原文地址:https://www.cnblogs.com/sharpest/p/7639482.html
Copyright © 2020-2023  润新知