我正在使用带有下拉列表的Kendo UI内联编辑。 在我的代码中,我从控制器函数获取值为JSON。
下拉列表没有绑定此JSON数据,它显示错误,因为无法识别e.slice。
$("#orderItems-grid").kendoGrid({
dataSource: datasource,
columns: [{
field: "Orderref",
title: "Order Ref",
editable: false
}, {
field: "ProductRef",
title: "Product Ref",
editable: false
}, {
field: "ProductNotes",
title: "Product Notes",
editable: false
}, {
field: "OrderStatusId",
title: "Order Status",
template: "#=OrderStatus#",
editor: function (container) {
var input = $('<input id="OrderStatusId" name="OrderStatusId">');
input.appendTo(container);
input.kendoDropDownList({
dataTextField: "Value",
dataValueField: "Key",
dataSource: {
transport: {
read: {
url: "/Order/GetOrderStatusListForDD",
type: "POST",
dataType:"json"
}
}
}
}).appendTo(container);
}
},
{ command: { name: "edit", text: "Edit Status" } }],
editable: "inline"
});
我的JSON结果是
{ “16”:“分配给挑选队列”, “2”:“等待批准”, “10”:“等待命令”, “9”:“等待股票”, “6”: “取消”, “14”:“取消和产品重置”, “7”: “被拒绝”, “8”: “停产”, “11”:“停产和替代发现”, “15”: “已开发票”, “1”:“订单已收到”, “3”:“发送给供应商的订单”, “5”: “已装船”, “4”:“存储区” }
答案 0 :(得分:0)
你有两次.appendTo(容器)。试试这个:
editor: function (container, options) {
$('<input data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
dataTextField: "Value",
dataValueField: "Key",
dataSource: {
transport: {
read: {
url: "/Order/GetOrderStatusListForDD",
type: "POST",
dataType: "json"
}
}
}
});
}
你的GetOrderStatusListForDD()动作中的更新:结果必须实现IEnumerable,然后返回Json(result)将返回正确的JSON