2014-01-27 3 views
0

Я боролся с этой проблемой и попал в блокпост. У меня есть сетка кендо с выпадающим списком.Kendo Grid DropdownList And Insert template Ошибка

Проблема

  1. Когда я отредактировать запись, выбрав значение в DropDownList, то поле не обновляется.
  2. Когда я выберите Add Command на панели инструментов, другой шаблон пытается вынести и поднимает ошибку «Uncaught ReferenceError: ParentMenu не определен» в Chrome отлаживает. Поэтому ничего не происходит.

  3. Когда я закомментировать «значения: parentRef» из kendogrid определения столбцов все команды [Добавить, Редактировать] дисплей правильно

я показал ошибку я испытываю здесь http://jsfiddle.net/BlowMan/5tNQy/

JS код

$(function() { 
var mbModel = kendo.data.Model.define({ 
    id: "MenuId", 
    fields: { 
     "MenuId": { 
      type: "number" 
     }, 
      "DisplayText": { 
      type: "string" 
     }, 
      "MenuOrder": { 
      type: "number" 
     }, 
      "MenuStatus": { 
      type: "boolean" 
     }, 
      "HasKids": { 
      type: "boolean" 
     }, 
      "ParentMenu": { 
      type: "number", 
      defaultValue: 1 
     } 
    } 
}); 

var mbDataSource = new kendo.data.DataSource({ 
    data: [{ 
     "MenuId": 1, 
     "DisplayText": "Home", 
     "MenuOrder": 0, 
     "MenuStatus": true, 
     "HasKids": false, 
     "ParentMenu": null 
    }, { 
     "MenuId": 2, 
     "DisplayText": "Finance", 
     "MenuOrder": 1, 
     "MenuStatus": true, 
     "HasKids": false, 
     "ParentMenu": null 
    }] 

}); 
var parentRef = [{ 
    "value": 1, 
    "text": "Finance" 
}, { 
    "value": 2, 
    "text": "Corp. Services" 
}]; 
$("#menuBuilder1").kendoGrid({ 
    columns: [{ 
     field: "MenuId", 
     title: "Menu", 
     editable: true 
    }, { 
     field: "DisplayText", 
     title: "Name", 
     editable: true 
    }, { 
     field: "MenuOrder", 
     title: "Order", 
     editable: true 
    }, { 
     field: "MenuStatus", 
     title: "MenuStatus", 
     editable: true 
    }, { 
     field: "HasKids", 
     title: "Depends", 
     editable: true 
    }, { 
     field: "ParentMenu", 
     title: "ParentMenu", 
     values: parentRef 
    }, { 
     title: "Action", 
     command: ["edit"] 
    }], 
    toolbar: ["create"], 
    editable: "popup", 
    schema: { 
     model: mbModel 
    } 
}); 

var mbObject = new kendo.data.ObservableObject({ 
    data: mbDataSource, 
    //parentRef:[] 
}); 

kendo.bind($("#menuBuilder1"), mbObject); 
mbDataSource.bind("change", function (e) { 

}); 
var grid = $("#menuBuilder1").data("kendoGrid"); 
grid.bind("save", function (e) { 
    var that = this; 
    that.refresh(); 
}); 

grid.bind("edit", function (e) { 

}); 

$.ajax({ 
    url: "/MenuBuilder/GetMenuWithKids", 
    dataType: "json", 
    type: "GET", 
    success: function (ret) { 
     mbObject.set("parentRef", ret); 
    } 
}); 

});

HTML код

<div id="menuBuilder1" data-bind="source:data"></div> 

Am в узком углу и любую помощь будет оценена.

+0

Когда вы даете начальное значение 1 или 2, как ParentMenu в mbDataSource, обновление работает правильно. Вы можете дать 0 для начального нулевого значения. Но это работает неправильно (для выбора финансов вам нужно сначала выбрать корпоративные услуги, затем выбрать финансы, иначе сетка не изменит значение) – MustafaP

+0

Я ничего не мог найти о других проблемах. – MustafaP

+0

Привет, спасибо за обходной путь. Вы взглянули на проблему №2? – BlowMan

ответ

0

MustafaP решена проблема 1.

Для задачи 2, я понял, что я поместил определение схемы в неправильном месте в пределах kendoGrid. Я разместил его внизу после панели инструментов. Это должно скорее быть размещены только после kendoGrid скобки

$("#menuBuilder1").kendoGrid({ 
    schema: { 
     model: mbModel 
    }, 
    columns: [{ 
     field: "MenuId", 
     title: "Menu", 
     editable: true 
Смежные вопросы