У меня есть источник данных с двумя полями, такими как «Год» и «Месяц», и я должен объединить их вместе, чтобы отображать как одно поле в одном столбце, и каждое поле будет иметь свой собственный раскрывающийся список отдельно при нажатии кнопки редактирования.
например, у меня есть такие данные, как { Year: "2019", Month: "08" }
, и они должны отображаться как 201908 или 2019/08 в одном столбце.
все, что я знаю, это использовать шаблон столбца, например:
template: "<span>#= Year ##= Month #</span>"
or
template: "<span>#= Year #</span><span>#= Month #</span>"
но похоже, что я не могу редактировать два или более поля в одном столбце, все примеры, которые я могу найти, просто редактируют одно поле в одном столбце.
Есть ли решение?
<div id="TargetDiv">
<table id="Grid" data-bind="source: dataSource" class="gridtable"></table>
</div>
Это для Kendo-grid с фреймворком HTML5, TypeScript и MVVM.
Я определил таблицу сетки в cshtml
<div id="TargetDiv">
<table id="Grid" data-bind="source: dataSource" class="gridtable"></table>
</div>
и удалил шумы в моем коде, чтобы его было легче читать. Год и месяц содержатся в разных HTML-тегах, я пытался использовать шаблон редактирования в «редактировании», но, похоже, у меня это не работает.
Настройка источника, например:
let vm = {
dataSource: new kendo.data.DataSource({
data: [
{ SN: 1, Year: "2019", Month: "01", Title: "Project1" },
{ SN: 2, Year: "2020", Month: "04", Title: "Project2" },
{ SN: 3, Year: "2020", Month: "09", Title: "Project3" }
],
schema: {
model: {
id: 'SN',
fields: {
SN: {
type: 'number',
editable: false,
nullable: false
}
, 'Year': { type: 'string' }
, 'Month': { type: 'string' }
, 'Content': { type: 'string' }
}
}
}
}),
}
Настройка сетки, например:
$('#Grid').kendoGrid({
columns: [
"SN",
{
title: "YearMonth",
template: "<span>#= Year #</span><span>#= Month #</span>"
},
{
command: {
name: 'edit',
text: { edit: "", update: "", cancel: "" }
},
title: "edit"
}
],
editable: {
mode: "inline"
},
edit: function (e) {
}
});
kendo.bind('#TargetDiv', vm);