0

在过去的几天里,我一直在为移动列表视图上的无尽滚动而苦苦挣扎。我已经按照演示的建议设置了我的数据源和列表视图。我无法成功地让它在服务器端数据上工作(或“按以加载更多”)。本地数据按预期工作。我使用了许多不同的 KendoUI 核心版本,结果几乎相同。

不过,我确实注意到的一个区别是,演示中的 type: "odata" 部分拒绝为我工作(500 Internal Server Error)。因此,我在数据源上尝试了普通的“GET”类型。“GET”是 odata 样式 ( https://myserviceapi.azure-mobile.net/tables/EventTypes ?$filter=businessID%20eq%2053),Azure Tables 开箱即用地支持它,但没有无限滚动工作。我还尝试了 Azure 移动服务 api 方法的普通“GET”,它基本上是一种 RESTful 方法,它返回与 SQL Azure 中的 odata 表查询相同的数据。我尝试过的所有方法都不起作用。以下代码是我在许多 Kendo UI Core 构建中测试过的。

应用程序 JavaScript:

var dataSource = new kendo.data.DataSource({

                                                   transport: {

                                                                       read: {

                                                                                     url: 'https://myserviceapi.azure-mobile.net/tables/EventTypes?$filter=businessID%20eq%20' + busID,

                                                                                    dataType: "json"

                                                                                 }

                                                                   },

                                                   serverPaging: true,

                                                   pageSize: 12

 });







$("#photoHolder").kendoMobileListView({  

                                              dataSource: dataSource,

                                              template: "<p>#: eventName #</p>",

                                              endlessScrolling: true,

                                              filterable:{

            field: "eventName",

            operator: "contains",

            ignoreCase: true,

            placeholder: "search products..."

        }

 });

HTML:

<ul  id="photoHolder" data-role="listview">

</ul>

天蓝色 JavaScript:

    exports.get = function(request, response) {

    var mssql = request.service.mssql;

    var cnt = request.query.pageSize;

    var pnm = request.query.page;



    var sql = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY zOrder) AS RowNum, * FROM myschema.EventTypes where (businessID = " + request.query.busID + ") and active = 1) AS E " +

        "WHERE RowNum BETWEEN ((" + pnm + " - 1) * cnt + 1) AND (" + pnm + " * " + cnt + ") ORDER BY zOrder";



    mssql.query(sql, {

        success: function(results) {

            response.send(200, results);

        },

        error: function(err) {

            console.log(err);

            response.send(530, { error: err });

        }

    });

};
4

1 回答 1

1

当我在自己的“宠物”应用程序上玩耍时,我找到了答案。我只需要确保列表中有足够的项目来真正提供无尽的滚动体验。在 Kendo UI 论坛中,他们建议 pageSize 至少为 30。{ http://docs.telerik.com/kendo-ui/mobile/listview/endless-scrolling }

于 2015-10-12T13:50:01.717 回答