从选定行获取所有记录-Extjs

从选定行获取所有记录-Extjs,extjs,grid,row,Extjs,Grid,Row,因此,我在这里使用控制器返回单击行的记录: ... this.control({ 'mylist': { cellclick: function(view, td, cellIndex, record, tr, rowIndex, e, eOpts) { var id = record.get('ID'); var name = record.

因此,我在这里使用控制器返回单击行的记录:

...
this.control({
             'mylist': {
                cellclick: function(view, td, cellIndex, record, tr, rowIndex, e, eOpts) {
                        var id = record.get('ID');
                        var name = record.get('NAME');
                        var desc = record.get('DESC');
                        var view = record.get('VIEW');
...
我怎样才能动态地遍历
mylist
get
所有字段并为每个字段分配一个变量(因为将来列的数量可能会增加)


干杯

如果希望仅循环浏览映射到定义列的记录字段,可以执行以下操作:

cellclick: function(view, td, cellIndex, record, tr, rowIndex, e, eOpts) {

  var i,
      columns = view.panel.columns, 
      currentRecordKey,
      newRecord = {};

   for(i=0; i < columns.length; i++){

        currentRecordKey = columns[i].dataIndex;
        newRecord[currentRecordKey] = record.get(currentRecordKey)
   }

   //do something with new record
}
cellclick:函数(视图、td、cellIndex、记录、tr、行索引、e、eOpts){
var i,
columns=view.panel.columns,
currentRecordKey,
newRecord={};
对于(i=0;i
虽然此解决方案不会为ever键创建一个
var
,但它会创建一个包含当前记录的所有值的映射,用于类似的目的。例如,您可以简单地使用
newRecord.id
来获取示例中记录的id字段,它的作用与var声明相同,因为如果该字段(映射中的键)实际上不存在,语句将失败。请记住,这与简单地使用实际记录本身减去记录对象中的一些额外字段没有太大区别