Py学习  »  Jquery

带有自定义分页和动态列的kendo网格(jquery)

Kokirala Sudheer • 4 年前 • 223 次点击  

我的kendo网格显示动态列,还需要自定义分页,因为总记录数非常大。

我能够成功地实现自定义分页部分,但是动态列的功能不起作用。

我的场景是,根据响应数据,我将以字符串数组的形式生成列名,并将其作为操作方法响应的一部分发送。

我可以看到,columns我可以将它发送到网格,但是在调用响应后它不考虑columns列表。

我的代码是

        var content = createkendoDataSource(APIRequest);

        $("#grid").kendoGrid({
            dataSource: content,
            horizontalScrolling: true,
            verticalScrolling: true,
            scrollable: true,
            pageable: {
                messages: {
                    empty: "No search results found."
                },
                input: false,
                numeric: true,
                previousNext: true,
                butonCount: 5,
                pageSize: 10,
                alwaysVisible: true,
                pageSizes: [10, 25, 50, 100]
            },
            columns: content.totalColumns
        });

创建如下数据源…

function createkendoDataSource(APIRequest) {
        var dataSource = new kendo.data.DataSource({
            transport: {
                read: {
                    url: "/api/Search/Search",
                    contentType: "application/json; charset=utf-8",
                    type: "POST",
                    data: arfAPIRequest,
                    dataType: "json",
                    cache: false
                },
                parameterMap: function (options) {
                    APIRequest.pageSize = options.pageSize;
                    APIRequest.page = options.page;
                    var request = JSON.stringify(APIRequest);
                    return request;
                }
            },
            serverPaging: true,
            pageSize: 10,
            schema: {
                data: "results.results",
                total: "total", // total is returned in the "total" field of the response,
                parse: function (response) {
                    totalColumns = generateColumns(response.columns);
                    return response;
                }
            }
        });

        return dataSource;
    }

我将动态列列表放到数据源的“parse”块中的“totalColumns”变量中。我是网格没有从响应中获取列列表。

这种期望有可能吗??如果这就是我在这里缺少的?

提前谢谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46571
 
223 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Kokirala Sudheer
Reply   •   1 楼
Kokirala Sudheer    4 年前
var content = createkendoDataSource(sr, APIRequest);

                var configuration = {
                    dataSource: content,
                    scrollable: false,
                    pageable: {
                        input: false,
                        numeric: true,
                        butonCount: 5,
                        pageSize: 10,
                        alwaysVisible: true,
                        previousNext: true
                    },
                    columns:sr.columns,
                    serverPaging: true
                };

                var grid = $("#gridSamples").kendoGrid(configuration).data("kendoGrid");
                grid.setOptions({ columns: columns });

                grid.bind("page", pageChange);
                grid.dataSource.page(page);    

function createkendoDataSource(res, APIRequest) {
        var dataSource = new kendo.data.DataSource({
            serverPaging: true,
            transport: {
                read: function (options) {
                    options.success(res);
                }
            },
            pageSize: 10,
            schema: {
                model: res,
                data: "results.results",
                total: "totalRecords"
            }
        });
    return dataSource;
}