当我点击搜索按钮重新加载具有不同参数的网格存储时,我需要将分页工具栏参数重置为"page"
,"start"
,"limit"
!
我该怎么做?
问题是,当我在下一页,并且我进行了新搜索时,我有参数page=2
,start=25
,limit=25 dirty
,而我需要重置此项参数应用。
我的代码:
listeners: {
click: function(){
Ext.getCmp('GrlGio').getStore().removeAll();
Ext.getCmp('GrlGio').store.load({
params:{
mode: "RIC",
DataRicerca: dd,
Pit: Ext.getCmp('cmbPiattaforma').getValue()
}
});
}
}
谢谢!
答案 0 :(得分:13)
在Ext 4中,我发现loadPage()非常适合重置数据存储并使分页工具栏返回到第一页。例如:
store.loadPage(1) // note: 1-based, not 0-based
答案 1 :(得分:6)
您可以手动重置参数
Ext.getCmp('GrlGio').getStore().getProxy().pageParam =1;
Ext.getCmp('GrlGio').getStore().getProxy().startParam =0;
然后进行商店加载。我知道它看起来硬编码,但它是我发现的唯一解决方案......
答案 2 :(得分:5)
试试这个 -
pagingToolbar.moveFirst();
答案 3 :(得分:4)
通过覆盖ext.data.store:
定义以下函数“resetStartParam”Ext.override(Ext.data.Store, {
resetStartParam:function(){
//get the latest store options
var storeOptions=this.lastOptions;
if(storeOptions!=undefined){
//get the param names
var pn = this.paramNames;
//get the params from options
var params=storeOptions.params;
//change the param start value to zero
params[pn.start] = 0;
//reset options params with this new params
storeOptions.params=params;
//apply this new options to store options
this.storeOptions(storeOptions);
}
}
});
现在点击搜索按钮调用此功能:
Ext.getCmp('GrlGio').getStore().resetStartParam();
多数民众赞成。它应该有用。
答案 4 :(得分:4)
我知道这是一个老帖子,但我想我会加入我的便士工作。我正在使用EXTJS 4并遇到类似的问题。当我进行新的搜索时,页码等没有重置。我找到的解决方案似乎与导航栏一起使用,它自动使用商店的currentPage属性。我确实有一个轻微的奇怪的设置,但当我做一个新的搜索时,做这个.currentPage = 1对我来说很好
答案 5 :(得分:4)
Guys currentPage = 1为我做了诀窍
每次调用以下时加载商店之前 顺便说一下,我得到500个结果并加载缓存 分页是本地的,任何方式你可以在任何新的搜索之前尝试这个
var store = Ext.getStore('MyStoreS');
store.proxy.extraParams = { employeeId : searchStr};
store.currentPage = 1;
store.load();
答案 6 :(得分:3)
在你的处理程序中尝试这个
Ext.getCmp('gridpanel').getStore().removeAll();
Ext.getCmp('PagingToolbar').moveFirst();
之后,将您的搜索查询相应地加载商店
Ext.getCmp('gridpanel').getStore().load({params : { start : 0, limit : maxRecords, searchText : _searchText } });
希望有所帮助
答案 7 :(得分:3)
在removeAll()之后调用pagingToolbar.onLoad()。简单明了。
答案 8 :(得分:2)
以下是我通过分页实现搜索的方法。它只执行1个请求并刷新分页数据。
onExecuteSearch: function(){
var params = this.getSearchForm().getForm().getFieldValues()
, proxy = this.getSomeGrid().getStore().getProxy();
proxy.extraParams = params;
this.getPagingToolbar().moveFirst();
}
getFieldValues()文档:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-getFieldValues
有关代理“extraParams”的更多信息,请查看此处:ExtJs4 - Store baseParams config property?
答案 9 :(得分:1)
必须将页面大小更改为500以打印整个商店/网格,并且一旦打印,将网格恢复为原始页面大小25。
// 500 records are now in the store and on the grid
ux.core.grid.Printer.print(this.getOrderList());
store.pageSize = this.displaySize; // new page size is 25
this.getPagingToolbar().doRefresh(); // equivalent of pressing a refresh button on the toolbar
诀窍 - 使用相同的分拣机/过滤器/ currentPage重新加载商店
答案 10 :(得分:1)
这项工作正常(正确刷新分页信息):
myStore.removeAll();
myStore.fireEvent('load', myStore, [], {});