iteye_6393 2011-06-06 10:38
浏览 356
已采纳

【extjs3.2】grid重新加载jsonstore后,点击grid上的分页组件,grid不刷新

页面上有个combobox,grid,grid上有个pageToolbar用于分页。页面加载时,会将json数据加载到grid和pageToolbar里。
点击分页(此时有4页数据),grid能够正常分页显示。此时选择combobox,重新查询load store,grid和pageToolbar进行更新(此时有2页数据),点击下一页grid数据[b]没有更新显示下一页数据[/b]。附核心代码:
根据combobox加载jsonstore,更新grid
[code="javascript"]
function reload(status){
var url = String.format(queryUri + 'status.json?status={0}',status);
var comboStore = createJsonStore(fields,url);
comboStore.load(
{
params:{start:0, limit:pageSize},
callback:function(r,options,success){
if(success == true){
var isNull = comboStore.getAt(0) == null;
if(isNull){
grid.store.removeAll();
grid.getView().refresh();
}else{
grid.store = comboStore;
var pageTool = grid.getBottomToolbar();
pageTool.updateInfo();
pageTool.bindStore(grid.store);
var topTool = grid.getTopToolbar();
topTool.bindStore(grid.store);
grid.getView().refresh();
}
}else{
Ext.MessageBox.alert("查询失败");
}
}
}
);
}
[/code]

[code="javascript"]
function createJsonStore(fileds,url) {
var jsonStore = new Ext.data.JsonStore({
fields : fileds,
root : 'root',
totalProperty : 'totalCount',
remoteSort : true,
proxy : new Ext.data.ScriptTagProxy({
url : url
})
});
return jsonStore;
}

[/code]

  • 写回答

2条回答 默认 最新

  • iteye_18964 2011-06-07 09:04
    关注

    [code="js"]
    createPaging:function(pageSize,store){
    this.option={
    items:['-'],
    store:store,
    displayInfo:true,
    pageSize:pageSize,
    displayMsg:'{0}-{1}/{2}',
    emptyMsg:KQinfo.msg.notRecords
    };
    if(this.dynamicPageSize){
    var pageStore=new Ext.data.ArrayStore({
    fields:['value','text'],
    data:this.dynamicPageRecords
    });
    this.pageCombo=new Ext.form.ComboBox({
    width:60,
    mode:'local',
    editable:false,
    typeAhead:true,
    value:pageSize,
    store:pageStore,
    valueField:'value',
    displayField:'text',
    selectOnFocus:true,
    triggerAction:'all',
    forceSelection:true
    });
    this.option.items.push({xtype:'displayfield',value:KQinfo.btn.dynamicPage},this.pageCombo);
    }
    var pagingBar=new Ext.PagingToolbar(this.option);
    if(this.dynamicPageSize){
    this.pageCombo.on('select',function(combo){
    this.pageSize=combo.getValue();
    pagingBar.pageSize=this.pageSize;
    this.store.reload({params:{start:0,limit:this.pageSize}});
    },this);
    }
    this.bbar=pagingBar;
    delete this.option;
    },
    createStore:function(){
    if(Ext.isEmpty(this.storeMapping))throw 'storeMapping undefined...';
    var gridStore=new Ext.data.JsonStore({
    root:"gridRows",
    remoteSort:true,
    url:this.actionUrl,
    fields:this.storeMapping,
    totalProperty:"totalCount"
    });
    gridStore.on('loadexception',function(s,r,response){
    var status=response.status;
    if(status=='401'||status=='500'||status=='404'){
    parent.location.href=path+KQinfo.loginUrl;
    }
    },this);
    gridStore.baseParams=this.params||{};
    if(this.hasPage){
    gridStore.load({params:{start:0,limit:this.pageSize}});
    this.createPaging(this.pageSize,gridStore);
    }else{
    gridStore.load();
    }
    this.store=gridStore;
    },
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料