javascript - ExtJS - 单击按钮即可获取网格的选定值

标签 javascript extjs extjs5 sencha-architect

我是 Ext JS 的新手,所以我发现获得这个简单的逻辑有点困难。

我在选项卡面板中有一个网格。我在此网格的 和 处添加了两个按钮“添加”和“更新”。单击“添加”后,我想查看所选行的值。

代码如下:

Ext.define('XYZ.view.PlantInformation', {
      extend: 'Ext.panel.Panel',
      alias: 'widget.plantinformation',

      requires: [
        'XYZ.view.PlantInformationOldViewModel1',
        'Ext.tab.Panel',
        'Ext.tab.Tab',
        'Ext.grid.Panel',
        'Ext.grid.column.Column',
        'Ext.view.Table',
        'Ext.toolbar.Spacer'
      ],

      viewModel: {
        type: 'plantinformation'
      },
      height: 500,
      width: 800,
      layout: 'fit',
      title: 'Plant Information',
      defaultListenerScope: true,

      items: [{
        xtype: 'tabpanel',
        activeTab: 0,
        items: [{
            xtype: 'panel',
            scrollable: 'true',
            title: 'Plant',
            items: [{
              xtype: 'gridpanel',
              itemId: 'PlantTab',
              scrollable: true,
              bodyBorder: true,
              bind: {
                store: 'PlantStore'
              },
              columns: [{
                xtype: 'gridcolumn',
                dataIndex: 'ID_PLANT',
                text: 'Plant ID'
              }, {
                xtype: 'gridcolumn',
                dataIndex: 'DS_PLANT',
                text: 'Plant Name',
                flex: 1
              }],
              dockedItems: [{
                xtype: 'panel',
                dock: 'bottom',
                width: 100,
                layout: {
                  type: 'hbox',
                  align: 'stretch',
                  pack: 'end'
                },
                items: [{
                  xtype: 'button',
                  flex: 1,
                  text: 'Add',
                  listeners: {
                    click: 'onButtonClick'
                  }
                }, {
                  xtype: 'tbspacer',
                  flex: 1
                }, {
                  xtype: 'button',
                  flex: 1,
                  text: 'Update'
                }]
              }],
              listeners: {
                select: 'onGridpanelSelect'
              }
            }]
          },

        ],

        onButtonClick: function(button, e, eOpts) {
          var grid = Ext.getCmp('PlantTab');
          var selection = grid.getSelectionModel().getSelection()[0];
          alert(selection);
        },

        onGridpanelSelect: function(rowmodel, record, index, eOpts) {


        }

      });

我收到错误:

Uncaught TypeError: Cannot read property 'getSelectionModel' of undefined

我做错了什么来完成这个简单的事情?

提前致谢!

最佳答案

如果您想使用 Ext.getCmp 检索组件,则替换:

itemId:'PlantTab'

与:

id: 'PlantTab'

在你的网格配置中。

id 是全局的,itemId 的范围在父容器内。

关于javascript - ExtJS - 单击按钮即可获取网格的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31218862/

相关文章:

java - 如何使用ExtJs向服务器发送参数?

css - Sencha Architect ExtJs 应用程序中的 Icomoon 字形无法正常工作

javascript - ExtJS5 - 图表极坐标 itemclick

javascript - 我可以根据字母数更改字体大小吗?

javascript - momentjs toDate() - 时区被重置

时间:2019-03-17 标签:c#app: Is it possible to implement a JSON interface?

javascript - 带有自定义 ListItem 的 NestedList

javascript - 如何让 ExtJs 应用程序看起来像 Feed 示例?

grid - extjs 5 网格的滚动条在边框布局面板中不起作用

javascript - 在 JavaScript 中如何修复元素显示和变量创建之间的初始差异