Extjs4 ExtJS 4 PagingToolbar在后续页面加载时抛出dom错误
我对ExtJS相当陌生,但我已经能够让GridPanel与相关的分页工具栏一起工作。一切正常,直到我关上弹出的窗口,打开另一个。在随后的窗口加载中,我得到一个“me.dom未定义”错误。如果我移除分页工具栏,一切正常。我使用的是4.0.7版 提前谢谢 门店定义:Extjs4 ExtJS 4 PagingToolbar在后续页面加载时抛出dom错误,extjs4,extjs-mvc,gridpanel,Extjs4,Extjs Mvc,Gridpanel,我对ExtJS相当陌生,但我已经能够让GridPanel与相关的分页工具栏一起工作。一切正常,直到我关上弹出的窗口,打开另一个。在随后的窗口加载中,我得到一个“me.dom未定义”错误。如果我移除分页工具栏,一切正常。我使用的是4.0.7版 提前谢谢 门店定义: Ext.define('VIMS.store.TOs',{ extend:'Ext.data.Store', model:'VIMS.model.TO', requires: 'VIMS.model.TO',
Ext.define('VIMS.store.TOs',{
extend:'Ext.data.Store',
model:'VIMS.model.TO',
requires: 'VIMS.model.TO',
sorter:{property:'StartDate', direction:'DESC'},
buffered: true,
pageSize: 10,
listeners:{
beforeload: function(store,options) {
if(options.params && options.params.id){
store.getProxy().extraParams.id = options.params.id;
}
},
},
});
Ext.define('VIMS.view.TaskOrderList' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.taskorderlist',
title : 'Task Orders',
store: 'TOs',
requires:'Ext.toolbar.Paging',
height:'100%',
columnLines:true,
/* removed this code ---------------------------------------
dockedItems :[{
xtype: 'pagingtoolbar',
store: 'TOs', // same store GridPanel is using
pageSize:10,
dock: 'bottom',
displayInfo: false,}],
-------------------------------------------- */
initComponent: function() {
this.columns = [
{header: 'Description', dataIndex: 'Description', flex: 1},
. . .
{header: 'Id', dataIndex: 'TaskOrderId', hidden:true},
];
// added from here ---------------------------------
var PagingBar = new Ext.PagingToolbar({
pageSize: 10,
store: 'TOs',
displayInfo: true,
});
this.bbar = PagingBar;
// to here ---------------------------------------
this.callParent(arguments);
}
});
网格面板定义:
Ext.define('VIMS.store.TOs',{
extend:'Ext.data.Store',
model:'VIMS.model.TO',
requires: 'VIMS.model.TO',
sorter:{property:'StartDate', direction:'DESC'},
buffered: true,
pageSize: 10,
listeners:{
beforeload: function(store,options) {
if(options.params && options.params.id){
store.getProxy().extraParams.id = options.params.id;
}
},
},
});
Ext.define('VIMS.view.TaskOrderList' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.taskorderlist',
title : 'Task Orders',
store: 'TOs',
requires:'Ext.toolbar.Paging',
height:'100%',
columnLines:true,
/* removed this code ---------------------------------------
dockedItems :[{
xtype: 'pagingtoolbar',
store: 'TOs', // same store GridPanel is using
pageSize:10,
dock: 'bottom',
displayInfo: false,}],
-------------------------------------------- */
initComponent: function() {
this.columns = [
{header: 'Description', dataIndex: 'Description', flex: 1},
. . .
{header: 'Id', dataIndex: 'TaskOrderId', hidden:true},
];
// added from here ---------------------------------
var PagingBar = new Ext.PagingToolbar({
pageSize: 10,
store: 'TOs',
displayInfo: true,
});
this.bbar = PagingBar;
// to here ---------------------------------------
this.callParent(arguments);
}
});
要打开该窗口,请从我的控制器使用以下命令:
var view = Ext.widget('contractedit');
view.modal = true;
view.down('form').loadRecord(record);
closeMe: function(button) {
var win = button.up('window');
win.close();
},
通过以下方式处理关闭:
var view = Ext.widget('contractedit');
view.modal = true;
view.down('form').loadRecord(record);
closeMe: function(button) {
var win = button.up('window');
win.close();
},
您有一个额外的尾随逗号,可能会妨碍:
displayInfo: false,
还有,您是如何管理窗口的?Dmitry,删除后面的逗号并没有改变行为。我正在使用控制器管理窗口。我已经从控制器添加了上面的代码,显示了如何打开和关闭窗口。所以窗口包含窗体,而不是网格,对吗?那么,窗口和网格之间的连接在哪里呢?是的,窗口包含一个表单,该表单包含一个选项卡面板,其中包含多个网格,每个网格都有分页工具栏。如果我从网格中删除分页工具栏,一切正常(当然没有分页除外)。网格是否共享存储区或其他组件?您是否可以将源代码与从简单JSON数组加载的数据一起发布到JSFIDLE中?它们不共享存储区或其他组件。让我看看我能用JSFIDLE做些什么。谢谢你在这方面的帮助。