我有一个数据源,有两个字段,比如年和月,我必须将它们组合在一起才能像一列中的一个字段一样显示,当点击编辑按钮时,每个字段都会有自己的下拉列表。
例如,我有类似的数据{ Year: "2019", Month: "08" }
,它们应该在一列中显示为 201908 或 2019/08
我所知道的就是使用列模板,例如:
template: "<span>#= Year ##= Month #</span>"
或者
template: "<span>#= Year #</span><span>#= Month #</span>"
但似乎我无法在一列中编辑两个或多个字段,我能找到的所有示例都只是在一列中编辑一个字段。
有什么解决办法吗?
<div id="TargetDiv">
<table id="Grid" data-bind="source: dataSource" class="gridtable"></table>
</div>
这适用于带有 HTML5、TypeScript 和 MVVM 框架的 Kendo-grid。
我已经在 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);