使用kendo js填充网格

Populating a grid using kendo js

本文关键字:网格 填充 js kendo 使用      更新时间:2023-09-26

我正在开发一个web应用程序,该应用程序需要用一些数据填充网格。我有一个连接了onClick方法的按钮,它为要显示的网格打开了一个新的模式窗口。我正在使用对控制器的jquery post调用。但是,我无法获取json数据并将其分配给我的变量。

我的代码如下:

var grid_ds;
$.post('${ctx}/class/student/details?studentId=${student.studentId}', function(data){


}, 'json');
$('#student_grid').kendoGrid({
dataSource: grid_ds,
columns: [
{field: "studentName", title: "Student Name"},
{field: "studentClass", title: "Class"}
],
dataBound: function () {
     emptyGrid($('#student_grid'));
}
}).data('kendoGrid');

我的控制器发回json。我可以看到即将到来的数据。我应该如何将json数据分配给grid_ds和student_grid,并在网格中填充这些值。

您可以尝试使用带有自定义transport函数的kendo.data.DataSource,如下所示:

$('#student_grid').kendoGrid({
    dataSource: dataSource = new kendo.data.DataSource({
        transport: {
            read: function (e) {
                $.post('${ctx}/class/student/details?studentId=${student.studentId}', 'json')
                    .done(function (data) {
                        e.success(data);
                    });
            }
        }
    }),
    columns: [
        {
            field: "studentName",
            title: "Student Name"
        },
        {
            field: "studentClass",
            title: "Class"
        }
    ]});

我认为问题可能在于如何获取数据。由于$.post是一个带外操作的ajax调用,所以在传递给.kendoGrid()函数时,grid_ds很可能是未定义的。

我在kendo.ui.Grid中找不到您在问题中指定的dataBound配置属性。你知道这个配置设置是从哪里来的吗?