使用kendo js填充网格

时间:2016-05-11 20:49:19

标签: javascript jquery kendo-ui kendo-grid

我正在开发一个网络应用,需要使用一些数据填充网格。我有一个用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,并使值填充在网格中。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用kendo.data.DataSource自定义transport功能,如下所示:

$('#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调用,因此grid_ds在传递给.kendoGrid()函数时很可能未定义。

我无法在kendo.ui.Grid中找到您在问题中指定的dataBound配置属性。您是否碰巧知道此配置设置的来源?