[英]Kendo Grid Destroy Command sending entire HTML page to schema response -- Uncaught TypeError: Cannot read property 'results' of undefined
我正在嘗試為我的劍道網格中的每一行添加一個刪除按鈕。 我將銷毀命令添加到網格配置並顯示刪除按鈕,但是當我單擊它時,我收到一個控制台錯誤 - 未捕獲類型錯誤:無法讀取未定義的屬性“結果”。 這是指 schema.parse 中的一行,內容如下:
for (var i = 0, il = response.d.results.length; i < il; i++)
這是說響應是不確定的。 當我 console.log(response) 並且結果是整個 html 頁面正在響應中發送。
這對我來說沒有意義,因為當我在transport.destroy 中的console.log(options) 和parameterMap 中的console.log(data) 時,兩個console.logs 都以JSON 格式顯示需要刪除的行和包括身份證。
那么為什么將它作為整個 html 頁面傳輸到架構中呢? 架構中的 console.log(response) 以 <DOCTYPE.HTML> 等開頭並包括整個頁面? 誰能告訴我這是為什么?
是的,我已經在網格配置中包含了可編輯的:“內聯”。 謝謝
var ds = new kendo.data.DataSource({
transport: {
read: {
url: function () {
***omitted for privacy, but read works. the grid loads fine***
},
cache: false,
type: 'GET',
headers: {
'Accept': 'application/json; odata=verbose'
}
},
destroy: {
url: function (options) {
console.log(options);
console.log("destroy command called");
}
},
parameterMap: function (data, type) {
console.log(data);
console.log(type);
if (type == "destroy") {
// send the destroyed data items as the "models" service parameter encoded in JSON
return { models: kendo.stringify(data.models) }
}
}
},
pageSize: 10,
sort: {
field: "Modified",
dir: "desc"
},
filter: {
logic: 'and',
filters: [{
field: 'State',
operator: 'eq',
value: 'Submitted'
}]
},
error: function (e) {
kendo.alert(e.errors);
},
schema: {
errors: "error",
parse: function (response) {
console.log(response);
var data = [];
for (var i = 0, il = response.d.results.length; i < il; i++) {
var item = response.d.results[i];
//Create new fields to handle filtering by Date (instead of DateTime)
item.ModifiedFilter = new Date(new Date(item.Modified).setHours(0, 0, 0, 0));
item.CreatedFilter = new Date(new Date(item.Created).setHours(0, 0, 0, 0));
data.push(item);
}
return data;
},
total: function (response) {
return response.length;
},
model: {
id: 'Id',
fields: {
```
dataSource.destroy.url處理程序應返回網格將為銷毀操作請求的 url。 在您的情況下,destroy.url 處理程序不返回任何內容,請求“” url,這相當於請求您的目標網頁,因此,返回 Z4C4AD5FCA2E7A3F74DBB1CED00381AA4。
如果您不打算在刪除時更新服務器並且只是在視覺上刪除該行,只需將銷毀定義為不執行任何操作的處理程序。
例如
destroy: function (options) {
options.success(options.data.models);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.