如何在Extjs checkcolumn中获取id?

时间:2013-10-16 08:02:21

标签: javascript extjs extjs4

Im tiro in Extjs。

这是我的模特

     Ext.define('CatModel', {
    extend: 'Ext.data.Model',
    idProperty: 'id',
     fields: [{
        name: "name",
        convert: undefined
    }, {
        name: "id",
        convert: undefined

    }]

}); 

存储

    var store = Ext.create('Ext.data.TreeStore', {

    model:'CatModel',
    root: {
        expanded: true
    },
    proxy: {
        type: 'ajax',
        reader: 'json',
        url: 'item_access.jsp?fullpage=true&show_cat=1'
    }
});

和treePanel

var treePanel = Ext.create('Ext.tree.Panel', {
    id: 'tree-panel',
    title: 'Sample Layouts',
    region:'north',
    split: true,
    height: 560,
    minSize: 150,
    rootVisible: false,
    autoScroll: true,
    store: store,
    columns: [

    {
        xtype: 'treecolumn', 
        text: 'name',
        flex: 2.5,
        sortable: true,
        dataIndex: 'name'
    },

    {
        text: 'id',//I want to get this id
        flex: 1,
        dataIndex: 'id',
        sortable: true
    }
    , {
         xtype: 'checkcolumn',
         text: 'Done',
         dataIndex: 'done',
         width: 55,
         stopSelection: false,
         menuDisabled: true,
     listeners:{
      checkchange:function(cc,ix,isChecked){
        //alert(isChecked);
        //I want to get this row id in here 
      }
     }
    }]
});

checkchange函数中有三个参数一个未知,两个是索引,三个是检查状态...

那么我如何获得相同的行ID来检查复选框?

我可以通过复选框行索引找到该ID号吗?

1 个答案:

答案 0 :(得分:8)

您应该能够从TreeView获取带有行索引的记录,然后从中获取id属性:

listeners:{
    checkchange: function(col, idx, isChecked) {
        var view = treePanel.getView(),
            record = view.getRecord(view.getNode(idx));

        console.log(record.get('id'));
    }
}