我有一个Kendo网格,我试图添加删除功能。我的数据源看起来像:
var datasource = new kendo.data.DataSource({
transport: {
read: {
url: Router.action("Admin", "GetScansForMailItem", { mailItemIdnt: detailinit.data.MailItemIdnt }),
dataType: "json"
},
destroy: {
url: Router.action("Admin", "DeleteScan"),
type: "post"
}
},
model: {
id: "ScanIdnt",
fields: {
ScanIdnt: {editable: false, nullable: false}
}
},
pageSize: 5
});
我添加了模型部分,因为this回答,但它没有任何区别。
实际网格如下:
.kendoGrid({
dataSource: datasource
scrollable: false,
sortable: true,
pageable: true,
editable: "inline",
columns: [{
field: "ScanIdnt",
title: "Scan ID"
}, {
field: "CreatedDate",
title: "Created",
template: "#= kendo.parseDate(CreatedDate, 'yyyy/MM/dd') #"
}, {
field: "ScanDocumentRelativePath",
title: "File Path",
template: "<a href='/CAMP/Admin/Download?scanIdnt=#= ScanIdnt #'>#= ScanDocumentRelativePath.substring(1) #</a>"
}, {
field: "ScanUserIdnt",
title: "Scanned By"
},{
command: "destroy",
title: ""
}]
});
奇怪的是,单击删除按钮会删除UI上的网格,但绝对没有Ajax调用destroy
URL。我似乎无法弄清楚原因。有什么想法吗?
编辑我想指出这个网格实际上是另一个网格内的嵌套网格(如here)我发现父网格处理实际上是一个电话,但错误的功能。出于某种原因,它在一个级别项上单击删除会调用嵌套网格的读取功能,但嵌套网格不执行任何操作
答案 0 :(得分:1)
想出来(sorta)。虽然我认为我的代码和网格存在许多问题,但是当它归结为它时,剑道并不喜欢我的数据。
在与分层网格相关的Kendo文档中,子网格的数据存储在父级数据的字段中。例如,给定以下JSON:
"ParentItems": [
{
"Id": 12345 ,
"Name": "Test1",
"ChildItems": [
{"Id": 1, "Name": "Test"},
{"Id": 2, "Name": "Test"}
]
},
{
"Id": 12346 ,
"Name": "Test2",
"ChildItems": [
{"Id": 1, "Name": "Test"},
{"Id": 2, "Name": "Test"}
]
}
]
在父网格中,每个ParentItem
会在子网格中显示相应的ChildItems
。
另一方面,我分别拉两个数据集。基本上,我把ParentItem
拉成了:
"ParentItems": [
{
"Id": 12345,
"Name" : "Test1"
},
{
"Id": 12346,
"Name" : "Test2"
}
]
然后根据父母的id发出了第二个请求拉取子项的请求。
"ChildItems": [
{"Id": 1, "Name": "Test", "ParentId": "12345"},
{"Id": 2, "Name": "Test", "ParentId": "12345"}
]
我能够修改服务器端代码以提供数据,就像在第一个示例中一样,并设法使事情正常工作。可以找到帮助我的特定文档here