在 Ext JS 5 Grid 中获取选中项的列表始终返回一个空数组

Getting the list of checked items in Ext JS 5 Grid always returns an empty array?

本文关键字:返回 一个 数组 列表 JS Ext Grid 获取      更新时间:2023-09-26

这是视图文件中的相关代码:

Ext.define('MARS.view.listings.SummarySetupView', {
extend: 'Ext.Container',
xtype: 'summarysetupview',
requires: [
    'MARS.view.listings.SummarySetupController'
],
controller: 'summarysetup',
title: "Summary",
items: [
    {
        xtype: 'deliverablesGridPanel'
    },
    {
        xtype: 'button',
        text: 'Submit',
        handler: 'onSubmit'
    }
]
});

以下是控制器文件中的相关代码:

Ext.define('MARS.view.listings.SummarySetupController', {
extend: 'Ext.app.ViewController',
alias: 'controller.summarysetup',
onSubmit: function () {
    console.log(this.getView().refs.gridDeliverables.getChecked());
    // Returns [] - empty array
}
});

这是我的xtype"可交付成果网格面板"的定义:

Ext.define('MARS.view.DeliverablesGridPanel', {
extend: 'Ext.tree.TreePanel',
xtype: 'deliverablesGridPanel',
title: 'Deliverables',
reference: 'gridDeliverables',
flex: 1,
autoScroll: true,
rootVisible: false,
bind: {
    store: '{jobTreeStore}'
},
columns: [
    {
        xtype: 'treecolumn',
        dataIndex: 'Name',
        text: 'Name',
        width: 200
    },
    {
        xtype: 'gridcolumn',
        dataIndex: 'Description',
        text: 'Description',
        flex: 1
    }
]
});

清楚地知道它是一个网格,因为该函数有效,它总是返回空......

网格中的复选框选择列通常是选择模型的一部分。我知道从旧的extjs3天开始,你会做一些类似grid.getSelectionModel().getSelections()的事情,这将实现你在这里试图做的事情。