访问选项卡面板的第二个选项卡
Accessing 2nd tab of tabpanel
我在访问选项卡面板的第二个选项卡的网格行时得到未定义的值。
我使用以下代码创建了一个标签面板:
xtype: 'tabpanel',
border: false,
deferredRender: true,
region: 'center',
activeTab: 0,
items:[{
id: 'availableoperators',
itemId: 'ops-operators-grid',
xtype: 'chat.dashboard.opsmall',
title: 'Operators',
region: 'center'
}, {
id: 'availableagents',
itemId: 'ops-agents-grid',
xtype: 'chat.dashboard.opsmgrid',
title: 'Agents',
region: 'center'
}]
我在这里尝试访问第二个面板的行:
var opsGrid = Ext.getCmp('availableagents');
var records = opsGrid.store.getRange(0, opsGrid.store.getTotalCount());
for(var i = 0; i < records.length; i++) {
var row = opsGrid.getView().getRow(i);
}
只有当我使用第一个选项卡的 id 时,上面的代码才能正常工作。任何帮助将不胜感激。
发生这种情况是因为选项卡上的组件将首先显示。默认情况下,将在此选项卡上呈现网格后加载存储。因此,在打开选项卡之前,您没有呈现标记(opsGrid.getView())并且没有在商店加载数据。如果您将打开第二个选项卡并手动 运行 您的代码,它应该可以正常工作。
尝试将选项卡面板的 deferredRender 设置为 false,或将第二个选项卡的 forceLayout 设置为 true。它将强制渲染和加载所有选项卡 (deferredRender:false) 或仅渲染和加载选项卡,您将在此处设置 forceLayout。
我和 Selmaril 走的路一样。您的视图无法访问。如果需要,您可以在 getView 之前切换标签页。
yourTabPanel.setActiveTab("availableagents");
yourTabPanel.doLayout();
你的 TabPanel 是 xtype: 'tabpanel'
,为它设置一个 ID,你将能够:
Ext.getCmp("yourTabPanel").setActiveTab("availableagents");
我在访问选项卡面板的第二个选项卡的网格行时得到未定义的值。
我使用以下代码创建了一个标签面板:
xtype: 'tabpanel',
border: false,
deferredRender: true,
region: 'center',
activeTab: 0,
items:[{
id: 'availableoperators',
itemId: 'ops-operators-grid',
xtype: 'chat.dashboard.opsmall',
title: 'Operators',
region: 'center'
}, {
id: 'availableagents',
itemId: 'ops-agents-grid',
xtype: 'chat.dashboard.opsmgrid',
title: 'Agents',
region: 'center'
}]
我在这里尝试访问第二个面板的行:
var opsGrid = Ext.getCmp('availableagents');
var records = opsGrid.store.getRange(0, opsGrid.store.getTotalCount());
for(var i = 0; i < records.length; i++) {
var row = opsGrid.getView().getRow(i);
}
只有当我使用第一个选项卡的 id 时,上面的代码才能正常工作。任何帮助将不胜感激。
发生这种情况是因为选项卡上的组件将首先显示。默认情况下,将在此选项卡上呈现网格后加载存储。因此,在打开选项卡之前,您没有呈现标记(opsGrid.getView())并且没有在商店加载数据。如果您将打开第二个选项卡并手动 运行 您的代码,它应该可以正常工作。
尝试将选项卡面板的 deferredRender 设置为 false,或将第二个选项卡的 forceLayout 设置为 true。它将强制渲染和加载所有选项卡 (deferredRender:false) 或仅渲染和加载选项卡,您将在此处设置 forceLayout。
我和 Selmaril 走的路一样。您的视图无法访问。如果需要,您可以在 getView 之前切换标签页。
yourTabPanel.setActiveTab("availableagents");
yourTabPanel.doLayout();
你的 TabPanel 是 xtype: 'tabpanel'
,为它设置一个 ID,你将能够:
Ext.getCmp("yourTabPanel").setActiveTab("availableagents");