我有一个带有订单行的kendo-ui网格。有一个Qty
,Price
和Total
列。总计列计算为( Qty x Price )
。
为了进行编辑,我使用自定义弹出窗口显示一些其他信息,并允许用户更改Qty
和Price
。当他们这样做时,我希望Total
在自定义编辑表单中自动更新。
以下是总列的网格列定义:
{
field: "total",
title: "Total",
width: 60,
template: "#=qty*price#"
}
以下是编辑表单中的输入字段:
<input name="total" style="width: 60px" />
以下是问题:当我在编辑表单中更改数量或价格时,总数仅在网格中显示(在弹出式编辑表单下方),但总数编辑表单中的字段不是(它是空的)。
作为测试,我将#=total#
和#=qty*price#
放在编辑表单中;
它没有得到更新。
这是一个显示问题的Plunker: http://plnkr.co/edit/cZw18btauqb9RPEpd5Kc?p=preview
如何计算编辑表单中的总字段? (最好使用Kendo-ui模板机制或AngularJS,但jQuery hack会作为最后的手段)?
答案 0 :(得分:4)
模板不提供双向数据绑定,因此它们在首次生成后不会自动更新。
您可能希望在数据源架构中使用模型的计算字段:
schema: {
model: {
id: "itemNo",
fields: {
id: {
type: "string",
editable: false
},
price: {
type: "number"
},
qty: {
type: "number"
}
},
total: function () {
return this.get("qty") * this.get("price");
}
}
},
(demo)
答案 1 :(得分:2)
此外,如果您正在使用“incell”编辑,则可以使用grid dataSource的“change”事件来跟踪连接字段中的更改并强制计算字段进行更新。这样的例子可能是: