加载商店与params

时间:2012-03-23 09:19:21

标签: sencha-touch store

我想要做的是用下面的参数装载商店,所以我只得到商店的前十件商品。

app.stores.actualites.load({
    params : {
         start:0,
         limit:10,
    },
    callback : function(records, operation, success) {
         app.loadmask.hide();
    }
});     

但这不起作用,它会返回所有18个商店商品。

如果我将开始参数设置为1,它将返回17个项目,因此该参数正在运行但不是另一个。

更新:商店代码

app.stores.actualites = new Ext.data.Store({
    model: 'app.models.Actualites',
    proxy: {
        type: 'ajax',
        url: app.stores.baseAjaxURL + '&jspPage=%2Fajax%2FlistActualites.jsp',
        reader: {
            type: 'json',
            root: 'actualite',
            successProperty: 'success',
            totalProperty: 'total',
            idProperty: 'blogEntryInfosId'
        }
    }
});

这里奇怪的是当我在浏览器中尝试使用URL并添加& start = 0& limit = 1时,它的工作正常......

更新:尝试使用extraParams

我也尝试用extraParams来做,但这仍然不起作用

app.stores.actualites.getProxy().extraParams.start = 1;
app.stores.actualites.getProxy().extraParams.limit = 2;
app.stores.actualites.load({
    callback : function(records, operation, success) {
        app.loadmask.hide();
    }
});

3 个答案:

答案 0 :(得分:1)

分页功能必须在服务器端实际实现。 Sencha只会维护页面,并会向您发送正确的startlimit值。您需要在服务器端脚本中访问这些值,并根据这些值返回适当的结果。

如果您使用的是列表,那么您可以使用Sencha的内置ListPaging插件来处理自己的start / limit参数。

答案 1 :(得分:0)

这可能听起来很奇怪,但我在客户端和服务器上更改为“限制”的名称“停止”,并且它有效...

答案 2 :(得分:0)

应该是这样的:

app.stores.actualites.getProxy().setExtraParams({
                        start:1,
                        limit:2
                    })