Extjs Grid - 单击带有搜索条件的下一页按钮
Posted
技术标签:
【中文标题】Extjs Grid - 单击带有搜索条件的下一页按钮【英文标题】:Extjs Grid - Click next page button with search condition 【发布时间】:2013-07-05 07:30:46 【问题描述】:我有一个网格面板,我在 initComponet 函数中创建了商店
,initComponent: function()
var store = Ext.create('Ext.data.Store',
model: 'MyObject',
autoLoad: false,
pageSize:22,
remoteSort:true,
proxy:
type: 'ajax',
url: 'example.php',
reader:
type: 'json',
totalProperty: 'total',
root: 'results'
);
this.store = store;
this.dockedItems = [
xtype: 'pagingtoolbar',
store: this.store,
displayMsg: '0 - 1 / 2',
emptyMsg: 'empty',
dock: 'bottom',
displayInfo: true,
pageSize: 22
];
this.callParent(arguments);
this.store.load(params:start:0, limit:22);
我使用一些值进行表单搜索,当我按下搜索按钮时,我将执行以下代码
grid.store.load(
params:
start:0,
limit:22,
signalSearch: 1,
search1: myValue1,
search2: myValue2,
);
在我的 php 文件中会捕捉到那是搜索
if ( have $_REQUEST["signalSearch"])
// print json with condition search
else
// print json with all data
结果返回 2 页(很好)。但是当我按下下一页按钮以在第 2 页上查看一些结果但我的商店加载失败(我认为当我按下下一页按钮时他们调用 store.load(params:start:0, limit:22);
并且在我的 php 文件中将与 else 一起运行案子)。
那不是电话
grid.store.load(
params:
start:0,
limit:22,
search1: myValue1,
search2: myValue2,
);
我的搜索思路不好?我该如何解决这个谢谢
【问题讨论】:
【参考方案1】:如果您在商店的“加载”功能中使用参数,则这些参数仅针对单个请求,因此如果您单击工具栏的下一页,您将不会发布 signalSearch 参数。 您应该在加载前事件上注册一个自定义侦听器并添加您的参数:
initComponent: function()
....
this.callParent(arguments);
this.store.addListener('beforeload', function(store, operation)
Ext.apply(operation.params,
signalSearch: 1 // Or you could make conditions if apply this search param
);
return true;
, this);
【讨论】:
以上是关于Extjs Grid - 单击带有搜索条件的下一页按钮的主要内容,如果未能解决你的问题,请参考以下文章
如何有条件地转到pageViewController中的下一页?
通过按钮选择 ag-grid-table 中的下一行(如果下一行在下一页上)?
Ext Js Paging 无法导航到下一页,刷新,最后一页不起作用