• Ext grid checkbox 分页 翻页 勾选 问题


     1          timeArray = new Array();    //临时数组变量
     2     var timeStatusBar = new Ext.ux.StatusBar({
     3             id: 'statusbar',
     4             defaultText: '选择时间列表',
     5     });     
     6     var timeSelectModel = new Ext.grid.CheckboxSelectionModel({
     7         checkOnly:true,
     8         singleSelect:false,
     9         listeners:{
    10             rowselect:function(sm, rowIndex, record){  //选择事件,将time添加到timeArray中
    11                 var time = record.data.time;                
    12                 if (!ArrayContains(timeArray, time)){
    13                 //timeArray中没有存储time,则添加到timeArray中
    14                     var link = '<a href="javascript:removeTime_result('+time+')"><img src="/NetMonitor/Images/common/delete.gif"/></a>';
    15                     ArrayAppendDesc(timeArray, time, [time, link]);
    16                     timeStore_result.loadData(timeArray);                    
    17                 }
    18                 
    19             },
    20             rowdeselect:function(sm, rowIndex, record){  //取消选择事件,从timeArray中移除出去
    21                 //临时变量中存储了这个time,则从timeArray中移除出去
    22                 var time = record.data.time;            
    23                 ArrayRemove(timeArray, time);
    24                 timeStore_result.loadData(timeArray);                
    25             }
    26         }
    27     });
    28     var timeColumnModel = new Ext.grid.ColumnModel([
    29         {  header:'时间选择列表',dataIndex:'time',200,align:'center'},
    30         timeSelectModel
    31     ]);
    32     var timeRecordType = Ext.data.Record.create([{name:'time'}]);
    33     var timeStore = new Ext.data.Store({
    34         id:'timeStore',
    35         proxy:new Ext.data.DWRProxy(ExcelDaoService.getGridTime_ExcelDao,false),
    36         reader:new Ext.data.ListRangeReader({
    37             root:'data',
    38             totalProperty:'totalSize'
    39         },timeRecordType)
    40         ,
    41         listeners:{
    42             beforeload:function(){
    43                 timeStore.baseParams = {table:table};    
    44             },
    45             load:function(){                                        //加载的时候,根据临时变量timeArray勾选
    46                 var records = new Array();
    47                 timeStore.each(function(record){
    48                     for(var i=0; i<timeArray.length; i++){
    49                         if(timeArray[i][0] == record.data.time){
    50                             records.push(record);
    51                         }                        
    52                     }
    53                 });            
    54                 timeSelectModel.selectRecords(records, true);
    55             }
    56         },
    57         remoteSort:true
    58     });
    59 
    60     var pageTBar=new Ext.PagingToolbar({
    61         id:'pagingTbr',
    62         pageSize: 20,
    63         store:timeStore,
    64         afterPageText:'共{0}页',
    65         beforePageText:"当前页",
    66         lastText:"尾页",
    67         nextText:"下一页",
    68         prevText:"上一页",
    69         firstText:"首页"
    70     });
    71     var timeGrid = new Ext.grid.GridPanel({
    72         id:'timeGrid',
    73         tbar:timeStatusBar,
    74         bbar:pageTBar,
    75         cm:timeColumnModel,
    76         sm:timeSelectModel,
    77         store:timeStore,
    78         autoScroll:true,
    79         stripeRows:true,
    80         height:540
    81     });
    View Code

    Ext grid checkbox在翻页的过程中,会碰到之前勾选的数据,无法记录的情况,这时就应该使用一个临时array变量存储勾选的值,然后在grid每次load的时候,把每行数据与该array变量进行遍历判断,这样就能实现翻页保持勾选数据的效果。

  • 相关阅读:
    SQL Server 连接字符串和身份验证
    常用jQuery选择器总结【转】
    javascript深入理解js闭包[转]
    JS鼠标事件大全
    JS 获取各个宽度和高度
    移动设备屏幕缩放
    面向对象学习【类-匿名类】
    Java学习笔记之log4j与commons-logging<转>
    Java数据库连接——JDBC基础知识(操作数据库:增删改查)【转】
    静态方法和非静态方法的区别
  • 原文地址:https://www.cnblogs.com/dancser/p/3527367.html
Copyright © 2020-2023  润新知