2015-06-02 3 views
0

У меня есть довольно простая сетка с источником данных, который извлекает данные правильно По этой причине у меня есть функция schema.parse определенаПолучение строки на запросе обновления в KendoUI источнике данных

Проблемы заключается в том, что, когда я пытаюсь обновите/создайте новую строку, которую вызывает schema.parse(), и передаваемый ей параметр - это строка, содержащая HTML-адрес моей страницы. не может действительно понять, что, черт возьми, происходит там. благодаря

var _dataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       dataType: "json", 
       url: layerDefProvider.getLayerUrlById("surveys") + "/query", 
       data: { 
        f: "json", 
        //token: token, 
        outFields: "*", 
        //outSR: 3857, 
        where: "1=1" 
       }, 
       type: "POST" 
      }, 
      create: function (options) { 
       console.debug("called");//never gets called 
      }, 
      update: function (options) { 
       console.debug("called");//never gets called 
      }, 
      destroy: function (options) { 
       console.debug("called");//never gets called 
      } 

     }, 
     filter: { 
      field: "OBJECTID", operator: "eq", value: 0 
     }, 
     schema: { 
      data:function(response) { 

      }, 

      parse: function (data) {//on loading it is fine, on updating the data param is a string of my HTML of the page 
       var rows = []; 
       var features = data.features; 
       if (!features) { 
        return []; 
       } 
       for (var i = 0; i < features.length; i++) { 
        var dataRow = {}; 
        dataRow.OBJECTID = features[i].attributes.OBJECTID; 
        dataRow.Name = features[i].attributes.Name; 
        dataRow.Date = features[i].attributes.Date; 
        dataRow.Comment = features[i].attributes.Comment; 
        rows.push(dataRow); 
       } 
       return rows; 
      }, 
      model: { 
       id: "OBJECTID", 
       fields: { 
        OBJECTID: { type: "number", editable: false }, 
        Name: { type: "string" }, 
        Date: { type: "string" }, 
        Comment: { type: "string" } 
       } 
      } 
     } 
    }); 

    var _surveysPicker = $(config.table).kendoGrid({ 
     toolbar: ["create","save"], 
     editable: true, 
     dataSource: _dataSource, 
     height: 300, 
     sortable: true, 
     selectable: "multiple", 
     columnMenu: true, 
     resizable: true, 
     columns: [{ 
      field: "OBJECTID", 

      width: 40 
     }, { 
      field: "Name", 

      width: 40 
     }, { 
      field: "Date", 

      width: 40 
     }, { 
      field: "Comment", 

      width: 100 
     }] 
    }); 

ответ

0

Вам нужно переместить функцию разбора внутри чтения событий, если вам нужно проанализировать данные только на действия чтения.

+0

Извините, но это не правильный путь. Я отправлю ответ сейчас. Правильный способ - использовать параметрMap и сопоставить запрос вызывающим действием. –