我有一个解决方案,类似于以下内容:
$("#grid").kendoGrid({
editable:true,
columns: [
{ field: "name" },
{ field: "address" }
],
dataSource: [
{
name: "Beverages",
address: "street 1",
products: [
{ name: "Tea", price: 20 },
{ name: "Coffee", price: 23 }
]
},
{
name: "Food",
address: "street 2",
products: [
{ name: "Ham", price: 32 },
{ name: "Bread", price:34 }
]
}
],
detailInit: function (e) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: e.data.products,
editable:true,
});
}
});
我从sql server数据库带来的那些数据。 主数据加载正确,但不是详细信息。我就是你在上面看到的。我选择的第一条记录顺利(我先选择的任何记录,无论是网格中的第一条记录还是最后一条记录)。然后,任何其他变坏,或不扩展或显示此错误消息“未捕获TypeError:undefined没有属性”。我可以做一个新的数据库查询,我猜这一切都运行正常,但如果我在第一个请求中提供所有数据,效率会更高。
欢迎任何帮助。再见,Thx。
答案 0 :(得分:0)
您粘贴的代码不是有效的JavaScript。您需要像这样修改它:
/* snip */
columns: [
{ field: "name" },
{ field: "address" }
],
[
{
name: "Beverages",
/* snip */
/* snip */
columns: [
{ field: "name" },
{ field: "address" }
],
dataSource: [
{
name: "Beverages",
/* snip */
这是一个现场演示:http://jsbin.com/oKiKupi/1/edit
答案 1 :(得分:0)
好的,我解决了这个问题...... 把我所有的场景都弄得很复杂,所以如果有人在他自己的场景中遇到类似的问题,也许这会有所帮助。
我所做的是从网格定义中提取数据源定义。
var ds = [
{
name: "Beverages",
address: "street 1",
products: [
{ name: "Tea", price: 20 },
{ name: "Coffee", price: 23 }
]
},
{
name: "Food",
address: "street 2",
products: [
{ name: "Ham", price: 32 },
{ name: "Bread", price:34 }
]
}
]
$("#grid").kendoGrid({
editable:true,
columns: [
{ field: "name" },
{ field: "address" }
],
dataSource: ds,
detailInit: function (e) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: e.data.products,
editable:true,
});
}
});
我希望这可以帮到你。
再见。