我正在使用 Kendo+razor,我想创建一个没有任何特定数据模型的 Kendo 网格(在我的情况下,我必须显示用户输入的 SQL 查询的结果,因此结果可以有任何数字/列类型)。为了使其通用,我尝试将网格绑定到 System.data.DataTable 和一个 ajax 调用来填充该网格。第一次加载时它工作正常,但是当我重新填充相同的网格时,它不会更新其列名。
场景:
Ajax 调用是在单击按钮以使用查询结果填充网格时进行的。在第一次 ajax 调用时,结果是一个带有属性 id、name 和 description 的 JSON。网格显示正确的数据,上面提到的 3 列和 4 行。
在第二个 ajax 调用中,响应 JSON 包含属性 UserName、UserType、Address、PhoneNumber,这一次网格不更新其模型绑定,列保持前三列 id、name 和 description,但行数更新为没有其中的数据(因为返回的 JSON 中不存在列)
我想将列重新绑定到每次都可能不同的返回 JSON 属性。
这是我的 HTML 代码:
@model System.Data.DataTable
<div>
@(Html.Kendo().Grid(Model)
.Name("ResultsGrid")
.TableHtmlAttributes(new { Class = "kendoGrid" })
)
</div>
和按钮点击代码上的Javascript:
function execute() {
$.ajax({
url: "something something",
type: "GET",
contentType: "application/json;charset=utf-8",
data: "",
dataType: "json",
success: function (data) {
$("#ResultsGrid").kendoGrid({
scrollable: false,
pageable: true,
sortable: true,
resizable: true,
dataSource: {
data: data,
pageSize: 5
}
});
}
}
如何刷新网格以将列绑定到新的 JSON 属性?