だから私の見解では、私はこれを持っています
<div id="grid"></div>
<script>
$(document).ready(function () {
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: '@Url.Action("GetCityList", "City")',
dataType: "json",
type: "GET",
contentType: "application/json; charset=utf-8"
},
create: {
url: '@Url.Action("create", "City")',
type: "Post"
},
parameterMap: function (data, operation) {
if (operation != "read") {
var result = {};
for (var i = 0; i < data.models.length; i++) {
var ciudad = data.models[i];
for (var member in ciudad) {
result["ciudades[" + i + "]." + member] = ciudad[member];
}
}
return result;
}
}
},
batch: true,
pageSize: 30,
schema: {
model: {
id: "id",
fields: {
id: { editable: false, nullable: true },
descripcion: { validation: { required: true} },
DepartamentName: { field: "DepartamentName" },
}
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
navigatable: true,
pageable: true,
height: 400,
toolbar: ["create", "save", "cancel"],
columns: [
"descripcion",
{ field: "DepartamentName", title: "Name Departament", editor: categoryDropDownEditor, width: 150 },
{ command: "destroy", title: " ", width: 110}],
editable: true
});
});
</script>
<script>
function categoryDropDownEditor(container, options) {
$('<input data-text-field="name" data-value-field="name" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataSource: {
type: "json",
transport: {
read: {
url: '@Url.Action("GetDepartament", "city")
}
}
}
});
}
</script>
問題はありません
関数をこの部分に変更すると、
$('<input data-text-field="name" data-value-field="name" data-bind="value:' + options.field + '"/>')
$('<input data-text-field="name" data-value-field="id" data-bind="value:' + options.field + '"/>')
それを使用すると、アクションで問題なく表示されますIDを取得しますが、グリッドでドロップダウンでグリッドの部門を選択すると、IDが表示されます(必要な動作はありません)
これを機能させるにはどうすればよいですか?私はそれがバインド部分にあると思います..