extjs获取Container中Panel的checkbox

竹子_bamboo 2019-02-27 03:42:55
获取下面代码,checkbox的值,我试了很多方法都取不到值
Ext.define("Biz.view.dblucene.alldatamodule.Container", {
extend: 'Ext.container.Container',
xtype: 'alldatamodule',
requires: ['Ext.ux.layout.ResponsiveColumn'],
controller: 'dashboard',
viewModel: {
type: 'dashboard'
},
layout: 'responsivecolumn',
items: [{
xtype: 'biz_tree', height: 400, title: '数据模型', rootVisible: true, root: {
"id": "11111111-1111-1111-1111-111111111111", text: '组织目录', expanded: true
}, store: Ext.create('Ext.data.TreeStore', {
proxy: {
extraParams: {"access": 1, "sort": "sort"},
type: 'ajax',
url: Ext.location + '/resource/datatableinfo/treeload'
}
}), listeners: {
itemclick: function (dataView, node) {
var grid = this.nextSibling();
grid.getStore().removeAll();
if (node.data.catalogId) {
Ext.apply(grid.getStore().getProxy(), {extraParams: {"parentid": node.id}});
grid.getStore().load();
}
}
}
}, {
xtype: 'alltablegrid', height: 400, width: '70%', title: '字段列表'
}]
});
Ext.define("Biz.view.dblucene.alldatamodule.TableGrid", {
extend: "Biz.grid.Panel",
xtype: 'alltablegrid',
store: Ext.data.BizStore('/resource/datatableinfo/griddatafield'),
scroll: true,
defaults: {
xtype: 'checkbox',
id: 'hobby',
typeAhead: true,
triggerAction: 'all',
selectOnFocus: true,
labelAlign: 'right',
width: '96%'
},
listeners: {
afterrender: function () {
this.getStore().setGroupField('tableName');
}, cellclick: function (e, g, h, d) {
var addToolbar = this.dockedItems.items[2].items.items[0];
addToolbar.setDisabled(false);
addToolbar.tableData = d.data;
// var tableId = d.data.tableId;
// var field = d.data.code;
// var form = Ext.create("Biz.view.system.service.ServiceSourceForm");
// form.getForm().findField('tableId').setValue(tableId);
// form.getForm().findField('field').setValue(field);
}
},
columns: [{
text: "字段名称", dataIndex: 'name', flex: 0.25
}, {
text: "编码", dataIndex: 'code', width: 160
}, {
text: "字段类型", dataIndex: 'type', width: 100
}, {
text: "默认标识", dataIndex: 'defaultFlag', width: 80, renderer: function (value) {
return {0: '否', 1: '是'}[value];
}
}, {
text: "时间", dataIndex: 'createTime', width: 150, renderer: function (value) {
return Ext.Date.format(new Date(value), "Y-m-d H:i:s");
}
}]
});
...全文
194 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹子_bamboo 2019-03-01
  • 打赏
  • 举报
回复
自己解决了 在xtype: 'alltablegrid',下面定义一个id,id: 'tablePanel',然后就可以取到了,比较笨的办法 代码如下:

var grid = Ext.getCmp('tablePanel');
            var rowSelectionModel = grid.getSelectionModel();
            if (rowSelectionModel.hasSelection()) {
                var field = '';
                var record = rowSelectionModel.getSelected().items;
                for (var i = 0; i < record.length; i++) {
                    var tableId = record[i].data.tableId;
                    var code = record[i].data.code;
                    if (i == 0) {
                        field += code;
                    } else {
                        field += ',' + code;
                    }
                }
                var json = {};
                json.tableId = tableId;
                json.fields = field;
                for (var j = 0; j < fields.length; j++) {
                    if (tableId == fields[j].tableId) {
                        fields.splice(j, 1);
                    }
                }
                fields.push(json);
            }
        }
完整的代码:

var fields = [];
Ext.define("Biz.view.dblucene.alldatamodule.TableGrid", {
    extend: "Ext.grid.Panel",
    xtype: 'alltablegrid',
    id: 'tablePanel',
    selModel: {type: 'checkboxmodel', checkOnly: true},
    store: Ext.data.BizStore('/resource/datatableinfo/griddatafield'),
    scroll: true,
    defaults: {
        xtype: 'checkbox',
        typeAhead: true,
        triggerAction: 'all',
        selectOnFocus: true,
        labelAlign: 'right',
        width: '96%'
    },
    bbar: ['->', {
        xtype: 'button', text: '选定字段', width: '12%', style: 'border-color: #35baf6;', handler: function () {
            var grid = Ext.getCmp('tablePanel');
            var rowSelectionModel = grid.getSelectionModel();
            if (rowSelectionModel.hasSelection()) {
                var field = '';
                var record = rowSelectionModel.getSelected().items;
                for (var i = 0; i < record.length; i++) {
                    var tableId = record[i].data.tableId;
                    var code = record[i].data.code;
                    if (i == 0) {
                        field += code;
                    } else {
                        field += ',' + code;
                    }
                }
                var json = {};
                json.tableId = tableId;
                json.fields = field;
                for (var j = 0; j < fields.length; j++) {
                    if (tableId == fields[j].tableId) {
                        fields.splice(j, 1);
                    }
                }
                fields.push(json);
            }
        }
    }, '->'],
    listeners: {
        afterrender: function () {
            this.getStore().setGroupField('tableName');
        }, cellclick: function (e, g, h, d) {
            var addToolbar = this.dockedItems.items[2].items.items[0];
            addToolbar.setDisabled(false);
            addToolbar.tableData = d.data;
        }
    },
    columns: [{
        text: "字段名称", dataIndex: 'name', flex: 0.25
    }, {
        text: "编码", dataIndex: 'code', width: 160
    }, {
        text: "字段类型", dataIndex: 'type', width: 100
    }, {
        text: "默认标识", dataIndex: 'defaultFlag', width: 80, renderer: function (value) {
            return {0: '否', 1: '是'}[value];
        }
    }, {
        text: "时间", dataIndex: 'createTime', width: 150, renderer: function (value) {
            return Ext.Date.format(new Date(value), "Y-m-d H:i:s");
        }
    }]
});
效果图:

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧