【发布时间】:2014-01-27 16:34:02
【问题描述】:
我一直在努力解决这个问题并遇到了障碍。我有一个带有下拉列表的剑道网格。
问题
- 当我通过在下拉列表中选择一个值来编辑记录时, 字段未更新。
当我从工具栏中选择添加命令时,一个不同的 模板尝试渲染并引发错误“Uncaught ReferenceError: 在 Chrome 调试中未定义 ParentMenu"。因此没有任何反应。
当我从 kendogrid 列定义中注释掉 "values: parentRef" 时,所有命令 [Add,Edit] 都会正确显示
我已经证明了我在这里遇到的错误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>
我处于困境中,我们将不胜感激。
【问题讨论】:
-
当您在 mbDataSource 中将初始值 1 或 2 作为 ParentMenu 时,更新工作正常。您可以为初始空值提供 0。但它不能正常工作(对于选择财务,您必须先选择公司服务,然后选择财务,否则网格不会注意到值发生变化)
-
我找不到任何关于其他问题的信息。
-
您好,感谢您的解决方法。你看过问题 #2 了吗?
-
我看过了,chrome 调试器给出的 MenuId 没有定义。您说您使用不同的模板进行创建,但我看不到模板在哪里。
-
我在 prblm#2 中报告的错误是在从 Visual Studio 运行并在 chrome 中调试时。我看到它已更改为 jsfiddle 中的 MenuId。但是,“添加新”弹出窗口未能出现。请协助
标签: javascript jquery drop-down-menu kendo-ui grid