Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtJS PagingToolbar故障_Extjs - Fatal编程技术网

ExtJS PagingToolbar故障

ExtJS PagingToolbar故障,extjs,Extjs,我是extJS的新手。 我在PagingToolbar和Store上遇到问题。当我点击“下一页”时,PagingToolbar工作正常,但网格不更新。为什么会这样?请帮帮我。 这是我的代码: ` getJsonReader:function(){ this.JsonReader=new Ext.data.JsonReader({ totalProperty:'结果', root:'数据', idProperty:“id”, 字段:[ {name:'id',type:'int',allowBlan

我是extJS的新手。 我在PagingToolbar和Store上遇到问题。当我点击“下一页”时,PagingToolbar工作正常,但网格不更新。为什么会这样?请帮帮我。 这是我的代码: `

getJsonReader:function(){
this.JsonReader=new Ext.data.JsonReader({
totalProperty:'结果',
root:'数据',
idProperty:“id”,
字段:[
{name:'id',type:'int',allowBlank:false},
{name:'firstName',allowBlank:false},
{name:'lastName',allowBlank:false},
{name:'middleName',allowBlank:false},
{name:'fotoTeacher',allowBlank:false}
]
});
返回this.JsonReader;
},
getStore:function(){
this.store=新的Ext.data.store({
id:'商店教师',
reader:this.getJsonReader(),
代理:新Ext.data.HttpProxy({
方法:“POST”,
url:“管理员/获取教师”
}),
自动加载:{params:{start:0,limit:3},
听众:{
加载:函数()
{
if(jQuery('#panel editTeacherHtml').length)
{
//转移注意力
jQuery(“#panel editTeacherHtml”).remove();
}
Ext.getCmp('grid-editTeacher').show();
},
异常:函数()
{
Ext.getCmp('grid-editTeacher').hide();
如果(!document.getElementById('panel-editTeacherHtml'))
{
Ext.DomHelper.insertAfter('panel-editTeacher-refreshButton'{
id:“panel editTeacherHtml”,
html:'
});
}
}
}
});
把这个还给我的商店;
},
TitleTech照片:功能(val)
{
返回“”;
},
getGrid:function(){
this.grid=new Ext.grid.GridPanel({
框架:对,
自动高度:正确,
id:“网格编辑教师”,
loadMask:是的,
store:this.getStore(),
sm:新的Ext.grid.CheckboxSelectionModel({
singleSelect:false,
checkOnly:对
}),
cm:新的Ext.grid.ColumnModel({
{标题:“Фааааааааа”,数据索引:“lastName”},
{header:'crmk_Мц',dataIndex:'firstName',sortable:false},
{header:'oччччччч',dataIndex:'middleName',sortable:false},
{header:'ФБСГПафааа',数据索引:'fotoTeacher',呈现器:this.titleTeacherfoto}
],
defaultSortable:true
}),
视图配置:{
forceFit:对
},
bbar:new Ext.PagingToolbar({
id:'pager-editTeacher',
displayInfo:true,
displayMsg:'ППаПаааи{0}-{1}з{2}',
前页文本:“Сааааааа”之前,
后页文字:“з{0}”,
prependButtons:对,
页面大小:3,
store:this.getStore()
})
})
返回此.grid;
},
getPanel:function(){
返回新的外部面板({
框架:对,
bodyStyle:'填充:5px;',
id:'专家组编辑教师',
autoScroll:是的,
标题:',
项目:[{
xtype:'按钮',
正文:“ббббббббббб”,
iconCls:“刷新”,
id:'panel-editTeacher-refreshButton',
样式:“页边距底部:10px”,
听众:{
单击:函数(){
grid=Ext.getCmp('grid-editTeacher');
grid.getStore().reload();
Ext.getCmp('pager-editTeacher').doRefresh();
}
}
},
这个文件名为getGrid()
]
});
}
Ajax响应

{成功:正确,
结果:5,
数据:[{id:“1”,“firstName:”“lastName:”“middleName:”“fotoTeacher:“\/modules\/admin\/design\/img\/default\/teacher\u thumb.jpg”},{id:“2”,“firstName:”“lastName:”“lastName:”“middleName:”“fotoTeacher:“\/modules\/admin\/design\/img\/default\/teacher\u thumb.jpg”},{id:“3”,“firstName:”“lastName:”“fotoTeacher:”“fotoTeacher:”“\/modules\/admin\/design\/img\/default\/teacher\u thumb.jpg”}]}


注:对不起,我的英语=)

我想你的问题是,每次单击按钮,都会创建一个新的存储,并在这个过程中创建一个新的Reader对象

getStore: function(){
        this.store = new Ext.data.Store({
....
因此,如果单击按钮,会发生以下情况:

grid.getStore().reload();
//GridInstance.createANewStoreForMe(andCreateANewReaderForYourself).reload
因此,新创建的存储获取与原始存储完全相同的结果。 你应该做的是crea
grid.getStore().reload();
//GridInstance.createANewStoreForMe(andCreateANewReaderForYourself).reload
MyApp.MyClass = Ext.extend(Ext.grid.Grid, {

initComponent: function () {

        this.store = new Ext.data.Store({
            ...
        });

        // create config object
        var config = {
            store     : store,
            ...
        };

        // apply config
        Ext.apply(this, Ext.apply(this.initialConfig, config));

        // call parent
        MyApp.MyClass.superclass.initComponent.call(this);

    } // eo function initComponent

    ,getStore: function() {
        return this.store;
        // Or this.getStore(); in the case of this class (Grid which is always able to return it's own store)
    }

}); // eo extend

var myGrid = new MyApp.MyClass({});