希望有人可以帮我解决这个问题,因为过去两天我一直试图弄明白这一点。
问题:我有一个Kendo网格,它使用带有下拉列表的内联编辑。当我选择下拉菜单时,我会得到我的物品,当我更新值时,我会设置好 - 一切都好!但是,当我最初编辑项目时,网格中显示的当前值从下拉框中消失(如果我不更新该字段,则值仍然保持不变 - 编辑时不会出现。)
我的代码:
schema: {
model: {
id: "Id",
fields: {
Id: { type: "number" },
...
Relationship: { type: "string" },
...
}
}
}
columns:
[
{ field: "Firstname", title: "Firstname" },
....
{ field: "RelationValue", title: "Relationship", editor: GetRelationships,
template: function (data) { return "<span title='" + data.Relationship + "'>"
+ data.Relationship + "</span>" } },
...
{ command: ["edit"], title: " ", width: "110px" }
],
editable: "inline"
function GetRelationships(container, options) {
$('<input data-text-field="RelationValue" data-value-field="RelationId" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
dataTextField: "RelationValue",
dataValueField: "RelationId",
dataSource: {
transport: {
read: {
dataType: "jsonp",
url: "http://localhost:55719//HouseholdMembers/_GetRelationships",
}
}
},
change: function (e) {
var dataItem = e.sender.dataItem();
options.model.set("Relationship", dataItem.RelationValue);
}
});
}
下拉列表布局
public JsonResult _GetRelationships()
{
List<Relations> Relationships = new List<Relations>();
Relationships.Add(new Relations() { RelationId = 1, RelationValue = "Partner" });
return this.Jsonp(Relationships);
}
非常感谢任何帮助:)
答案 0 :(得分:0)
您需要在自定义编辑器代码中自行设置下拉值。使用以下代码替换JS脚本中的代码GetRelationships
:
function GetRelationships(container, options) {
$('<input data-text-field="RelationValue" data-value-field="RelationId" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
dataTextField: "RelationValue",
dataValueField: "RelationId",
value: options.model.RelationId, // THIS IS THE CHANGE I MADE
dataSource: {
transport: {
read: {
dataType: "jsonp",
url: "http://localhost:55719//HouseholdMembers/_GetRelationships",
}
}
},
change: function (e) {
var dataItem = e.sender.dataItem();
options.model.set("Relationship", dataItem.RelationValue);
}
});
}
为了您的参考,我创建了用于网格内联编辑的工作DOJO,并使用下拉列表作为编辑器。您可以在Inline Grid Editing with Dropdown As editor template访问该小提琴。
如果这不起作用,请告诉我。否则,请不要忘记将此标记为已接受的解决方案。