1

我正在使用剑道网格。它有大约 12 列需要时间来初始化剑道网格。根据搜索条件,我需要用新数据刷新而不重新初始化剑道网格(这会影响性能)。只是我需要使用新参数读取数据并将数据绑定到现有网格本身。

请提供我:1.如何使用带有新参数的kendo数据源显式读取数据?2.如何在不重新初始化的情况下将该数据源绑定到剑道网格?

如果可能的话,请提供一些例子......非常感谢任何帮助

4

1 回答 1

0

这对我有用。我不能说这是最好的解决方案。我只在第一次加载时初始化网格,然后在对网格的后续更改中设置 DataSouce。在此示例中,我的 assignmentFitlers 对象包含 38 个不同的可选参数,用于定义要查看的联系人。每次过滤器更改时,我的网格都会重新加载。我认为这对你有用。

        function bindGrid(e) {
        var assignmentFilters = e.assignmentFilters;

        var gridDataSource = new kendo.data.DataSource({
            transport: {
                read: {
                    url: '@Url.Action("Read", "GridModule")',
                    type: 'POST',
                    contentType: 'application/json'
                },
                parameterMap: function (options) {
                                            // Pass in Assignment filters
                    options.assignmentFilters = assignmentFilters;
                    return JSON.stringify(options);
                }
            },
            pageSize: 20,
            serverPaging: true,
            serverSorting: true,
            serverFiltering: true,
            schema: {

                data: "data",
                total: "totalRows"
            }
        });

        var $grid = $('#gridAssignments');

        if (e.firstLoad) {
            $grid.kendoGrid({
                scrollable: true,
                pageable: {
                    refresh: true,
                    pageSizes: [20, 50, 100, 500, 1000],
                    buttonCount: 12,
                    messages: {
                        display: "Showing {0}-{1} from {2} Provider Contacts",
                        empty: "No Contacts Match the Filter Criteria",
                        itemsPerPage: "Contacts per page"
                    }
                },
                reorderable: true,
                navigatable: true,
                change: gridOnChange,
                dataBound: gridOnDataBound,
                dataSource: gridDataSource,
                columnReorder: gridColumnReorder, 
                columnHide: gridColumnHide,
                columnResize: gridColumnResize,
                columnShow: gridColumnShow,
                columnMenu: {
                    sortable: false,
                    messages: {
                        columns: "Choose columns",
                        filter: "Filter",
                       }
                },
                resizable: true,
                height: '720px',
                filterable: true,
                selectable: "row",
                sortable: {
                    mode: "single",
                    allowUnsort: true
                },
                columns: [ @Html.Raw(Model.GridColumns.Columns) ]
        });
        } else {
            $grid.data('kendoGrid').setDataSource(gridDataSource);
        }

    }
于 2013-10-07T22:19:38.463 回答