2015-04-08 3 views
0

Я использую сетку kendo ui и пытаюсь добавить CRUD-операции для своей модели, которая обладает некоторыми свойствами навигации. Вот моя схема:Проблема Создание модели сетки пользовательского интерфейса Kendo с навигационным свойством

schema: { 
       data: function (data) { 
        return data || []; 
       }, 
       model: { 
        id: "Id", 
        fields: { 
         Id: { editable: false, 
          nullable: false, 
          type: "number" 
         }, 
         Frequency: { type: "string" }, 
         FREQ_POOL: { type: "object" },//THIS IS A NAV IN MY MODEL 

        } 
       } 
      } 

А вот моя сетка:

$("#AFTRCCFreqGrid").kendoGrid({ 
      dataSource: AFTRCCDS, 

      columns: [ 
       // { field: "Id", title: "Freq ID", format: "{0:c}", width: "120px" }, 
       { field: "Frequency", title: "Frequency", editor: categoryDropDownEditor, format: "{0:c}", width: "120px" }, 
       { field: "FREQ_POOL.Comments", title: "Comments", format: "{0:c}", width: "120px" }, 
       { command: ["edit", "destroy"], title: " ", width: "250px" } 
      ], 
      toolbar: ["create"], 
      editable: "inline", 
      pageable: true 

     }); 

Когда я попал в «Добавить новую запись Кнопка» в кендо сетке, я получаю следующее сообщение об ошибке:

Uncaught TypeError: Cannot read property 'Comments' of undefined(anonymous function) @ VM2305:3kendo.ui.DataBoundWidget.extend._rowsHtml @ kendo.all.js:55504kendo.ui.DataBoundWidget.extend._renderContent @ kendo.all.js:56181kendo.ui.DataBoundWidget.extend.refresh @ kendo.all.js:56084jQuery.extend.proxy.proxy @ jquery.js:548Class.extend.trigger @ kendo.all.js:181Observable.extend._process @ kendo.all.js:8378Observable.extend._change @ kendo.all.js:8317jQuery.extend.proxy.proxy @ jquery.js:548Class.extend.trigger @ kendo.all.js:181Observable.extend.splice @ kendo.all.js:5371Observable.extend.insert @ kendo.all.js:7587kendo.ui.DataBoundWidget.extend.addRow @ kendo.all.js:53021(anonymous function) @ kendo.all.js:53086jQuery.event.dispatch @ jquery.js:4665jQuery.event.add.elemData.handle @ jquery.js:4333 

Теперь вот что. Я вручную добавил строку в таблицу SQL, и я могу использовать сетку кендо для UPDATE строки успешно. Я могу редактировать свойство навигации «Комментарии». Но по какой-то причине, когда я создаю новую строку, я не могу заставить ее работать.

Я предполагаю, что когда я загружаю таблицу, она загружает свойства навигации, но когда я нажимаю «Добавить новую запись», она не знает, как создать свойство навигации «С нуля», тогда как при обновлении в строке уже загружена информация о свойствах навигации.

Любые идеи, как я могу это исправить? Спасибо.

Edit:

На стороне записки, другая решетка у меня есть, что использование код похож не имеет эту проблему, но когда я добавить новую строку в сетку и пост, свойство навигации является недействительным , Единственное время, когда они не равны нулю, - это когда я редактирую. Как я должен «инициализировать» свойства навигации при создании новой строки?

ответ

2

Думаю, вам нужно использовать шаблон в этом случае. В поле для комментариев, код будет что-то, как показано ниже:

{ 
     field: "Comments", template: function(dataItem) { 
     return dataItem.FREQ_POOL["Comments"]; 
    } 
    } 

Я создал jsbin to show how it fetches value from an object

Надеются, что это помогло

+0

Awesome! Спасибо огромное! –

+0

@JohnEdwards Добро пожаловать! – TheUknown

Смежные вопросы