簡體   English   中英

Kendo Grid Destroy 命令將整個 HTML 頁面發送到模式響應 - 未捕獲的類型錯誤:無法讀取未定義的屬性“結果”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM