Extjs4.2 获取行数据的两种方法。

    var test_grid = Ext.create('Ext.grid.Panel',{  
            id: 'test_grid_id',  
            columns: [  
                {text: "MsgId", dataIndex: 'MsgId',hidden: true},  
                {text: "Read", dataIndex: 'Read',hidden: true},  
                {text: "Subject", flex: 1, dataIndex: 'Subject',renderer: gridformat}  
            ],  
            listeners: {  
                selectionchange : function(model, records) {  
                    if (records != 'undefined' && records.length > 0) {  
                        var Subject = records[0].data.Subject;      //获取行数据  
                        alert(Subject);  
                          
                        var Read = records[0].data.Read;        //获取行数据  
                        if(Read == "true"){  
                            alert("true");  
                        }else{  
                            alert("false");  
                        }  
                    }  
                }  
            }  
        });  


上边是行单机事件,如果通过点击某行实现删除等功能,就需要用到

[javascript] view plain copy
  1. var msgid = test_grid.getSelectionModel().getLastSelected().get('MsgId');  

在Extjs4.2版本中,grid.getSelectionModel().getSelections();已不再适用。


下边放一个Extjs4.2之前版本的获取行数据的办法,可获取多行数据。此例可适用于多行删除。

1. 获取

[javascript] view plain copy
  1. function get_MsgIds(){  
  2.     var recs = test_grid.getSelectionModel().getSelections();// 获取选择行(一行或多行)的数据集  
  3.     var list = [];  
  4.     if(recs.length != 0){  
  5.         for(var i = 0 ; i < recs.length ; i++){  
  6.             var rec = recs[i];// 取得一行  
  7.             list.push(rec.get('MsgId'))// 取得该行中的某个属性的值  
  8.         }  
  9.     }  
  10.     return list;  
  11. }  
2. 删除按钮
[javascript] view plain copy
  1. tbar: [  
  2.     {text: '删除!',handler: function(){  
  3.         var list = get_MsgIds();  
  4.         var num = list.length;  
  5.         if(num == 0){  
  6.             Ext.Msg.alert('提示','请选择删除的数据');  
  7.         }else{  
  8.             delete(list);  
  9.         }  
  10.     }}  
  11. ]  
3. 删除方法
[javascript] view plain copy
  1. function delete(list){  
  2.         var MsgIds = list.join(',');          
  3.         Ext.Ajax.request({  
  4.             url: '...',      
  5.             params: {          
  6.                 FKeyID: MsgIds   
  7.             },  
  8.             method: 'POST',  
  9.             success: function(response,options){                     
  10.                 var result = Ext.util.JSON.decode(response.responseText);      
  11.             },  
  12.             failure: function(response,options){     
  13.             }  
  14.         });  
  15.     } 

你可能感兴趣的:(Extjs4.2 获取行数据的两种方法。)