获取所选行中的所有记录 - Extjs

时间:2013-12-02 21:43:45

标签: extjs grid row

所以我在这里有控制器返回一个被点击的行的记录:

...
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所有字段并为每个字段分配一个变量(因为将来可能会增加列数)?

干杯!

1 个答案:

答案 0 :(得分:1)

如果您希望仅遍历映射到已定义列的记录字段,则可以执行以下操作:

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
}

虽然此解决方案不会为永久密钥创建var,但它会创建一个包含当前记录的所有值的映射,这些值用于类似目的。例如,您可以简单地使用newRecord.id来获取示例中记录的id字段,它将与var声明具有相同的目的,因为如果该字段(映射中的键)没有,则语句将失败实际存在。请记住,这与仅使用实际记录本身减去记录对象中的一些额外字段没有多大区别。