-1

我正在使用 ExtJS 7.1 并创建了一个网格面板。我无法使用代码 Ext.getCmp("tempGrid").getSelectionModel().getSelection() 检索选定的行,这行代码始终返回长度为 0。

Ext.getCmp("tempGrid").getSelectionModel().hasSelection(),这行代码总是返回false。

我不知道出了什么问题,想寻求建议或建议。谢谢

我有一个选项卡面板作为主面板(mainPanel),然后我附加/链接了另一个面板(称为 tempGrid) 在 tempGrid 内,我将放置网格,这是网格配置

items: {
  xtype: 'gridpanel',
  id: 'tempGrid',
  header: false,
  forceFit: true,
  store: 'AStore',
  columns: [{
      xtype: 'gridcolumn',
      dataIndex: 'colA',
      text: 'A Column',
      filter: {
        type: 'string'
      }
    },
    {
      xtype: 'gridcolumn',
      dataIndex: 'colB',
      text: 'B Column',
      filter: {
        type: 'string'
      }
    }
  ],
  plugins: [{
    xtype: gridfilters ''
  }],
  dockedItems: [{
    xtype: 'pagingtoolbar',
    dock: 'bottom',
    displayInfo: true,
    inputItemWidth: 80,
    store: 'AStore'
  }]
}

4

3 回答 3

0

您的网格配置示例中的网格具有 id APanel。你必须打电话

Ext.getCmp("APanel").getSelectionModel().getSelection()

获取选定的记录。我想tempGrid是另一个你的网格

于 2020-04-01T15:02:40.877 回答
0

你的功能应该是这样的

var myGrid = this.getView();
var sl = myGrid.getSelectionModel().getSelection();
var items = new Array();
if (sl.length) {
  for (var i = 0; i < sl.length; i++) {
    items[i] = sl[i].get('recordId');
  }
}
return items;

你不应该是 xtype: 'grid' 这样的 xtype: 'gridcolumn',请也检查一下。谢谢

希望这有帮助

于 2020-04-01T16:04:32.563 回答
-1

我得到了解决我的问题希望它会帮助其他人

var grid = Ext.getCmp('CenterGrid');
var selection= CenterGrid.getSelectionModel();

for(var i=0;i < grid.store.getCount();i++){
if(selection.isSelected(i)){
//these array assing to finalarray send to php below
c.push(
grid.store.getAt(i).data.Parameter_Name+ "||",
grid.store.getAt(i).data.Value + "||",
grid.store.getAt(i).data.Value2 + "||",
grid.store.getAt(i).data.Value3 + "||"

);
}
}
console.log("new:"+c);
于 2020-03-31T10:49:41.267 回答