Jquery 剑道网格JSON不一致
我从一个不一致的API返回json,这意味着一些记录与它们关联“年龄”,而其他记录则没有 我正在尝试填充剑道UI网格,以便显示/操作数据。不幸的是,当没有与之关联的“年龄”的记录返回时,剑道会出现错误:uncaughtreferenceerror:Age未定义 以下是工作网格的示例: 这是一个网格,其中一条记录返回时没有“Age”:-您可以在控制台中看到错误,而不是页面本身 有没有什么方法可以让网格足够动态,以理解年龄没有返回,将其设置为null,然后继续 我正在使用的代码:Jquery 剑道网格JSON不一致,jquery,json,kendo-ui,Jquery,Json,Kendo Ui,我从一个不一致的API返回json,这意味着一些记录与它们关联“年龄”,而其他记录则没有 我正在尝试填充剑道UI网格,以便显示/操作数据。不幸的是,当没有与之关联的“年龄”的记录返回时,剑道会出现错误:uncaughtreferenceerror:Age未定义 以下是工作网格的示例: 这是一个网格,其中一条记录返回时没有“Age”:-您可以在控制台中看到错误,而不是页面本身 有没有什么方法可以让网格足够动态,以理解年龄没有返回,将其设置为null,然后继续 我正在使用的代码: var d
var data = [
{
FirstName: 'John',
LastName: 'Doe',
City: 'New York City',
Title: 'Supervisor',
BirthDate: '1/1/1975',
Age: '37',
},
{
FirstName: 'Jane',
LastName: 'Doe',
City: 'Buffalo',
Title: 'Sales Associate',
BirthDate: '1/1/1980',
}
]
$(document).ready(function() {
var grid = $("#grid").kendoGrid({
dataSource: {
data: data,
schema: {
model: {
fields: {
FirstName: { type: "string" },
LastName: { type: "string" },
City: { type: "string" },
Title: { type: "string" },
BirthDate: { type: "date" },
Age: { type: "number" }
}
}
},
pageSize: 10
},
height: 500,
scrollable: true,
sortable: true,
selectable: true,
filterable: true,
pageable: true,
columns: [
{
field: "FirstName",
title: "First Name"
},
{
field: "LastName",
title: "Last Name"
},
{
field: "City"
},
{
field: "Title"
},
{
field: "BirthDate",
title: "Birth Date",
template: '#= kendo.toString(BirthDate,"MM/dd/yyyy") #'
},
{
field: "Age"
}
]
}).data("kendoGrid");
});
非常感谢您的帮助。谢谢 我不确定剑道网格是否那么灵活,但您可以做的是在将数据源放入网格之前对其进行处理。您可以将年龄添加为数据源中的一个字段,或者根据存在的字段设置网格。如果在源代码上执行CRUD操作,这可能不起作用,但如果只是显示数据,这可能对您很好 其他人可能对剑道框架有更好的了解,这只是一个快速解决方案的建议
希望有帮助 为什么不尝试将缺少的字段(年龄)作为null发送。如果您从控制器获取数据,可以添加一个额外字段并将其发送到UI。这将使事情以正确的方式进行。只是我的意见…剑道网格不支持缺少的值。对象必须包含每行的每个成员,才能将其绑定到网格。空/空值应该是空字符串或空值,但它们必须存在于JSON结果中。对于您的列,添加一个带有data.field的模板即可
...
columns: [
{
field: "FirstName",
title: "First Name",
template: "#= data.FirstName != null ? FirstName : '' #"
},
{
field: "LastName",
title: "Last Name",
template: "#= data.LastName != null ? LastName : '' #"
},
{
field: "City",
template: "#= data.City != null ? City : '' #"
},
{
field: "Title",
template: "#= data.Title != null ? Title : '' #"
},
{
field: "BirthDate",
title: "Birth Date",
template: '#= data.BirthDate != null ? kendo.toString(BirthDate,"MM/dd/yyyy") : "" #'
},
{
field: "Age",
template: "#= data.Age != null ? Age : '' #"
}
]
...
这是一个很好的解决方案,我看到的唯一问题是会有很多变量字段,所以我不可能预测和“硬编码”所有这些字段来解决这个问题。不过我还是很感激你的建议。