Mvvm 剑道UI:在更改另一列的值时更新其中一列的数据
情景 我有一个产品详细信息的网格,在编辑时会打开一个包含该记录详细信息的弹出窗口。除数量字段外,所有字段均为只读。因此,当我增加或减少数量时,价格栏应根据价值反映出来。 如果1的数量是10,那么当我把数量增加到2时,它应该反映到20 问题 1我已经研究了一点编辑器方法,我必须在数量列上使用相同的方法,对吗 2如何获取价格列的值并更新其值?有没有像编辑器这样的内置方法??我该怎么办 下面是我准备的JS小提琴 谢谢 - Hardik将您的数据源定义为: 您应该在其中添加数量乘以价格的合计字段。 注意:此外,我还定义了不同字段的类型,以让KendoUI知道它们是数字,并生成正确的小部件 然后,将网格定义为: 在这里,我添加了一个Total列,它使用的模板是数量*价格的结果 每次更新数量时,将更新总数Mvvm 剑道UI:在更改另一列的值时更新其中一列的数据,mvvm,kendo-ui,kendo-grid,Mvvm,Kendo Ui,Kendo Grid,情景 我有一个产品详细信息的网格,在编辑时会打开一个包含该记录详细信息的弹出窗口。除数量字段外,所有字段均为只读。因此,当我增加或减少数量时,价格栏应根据价值反映出来。 如果1的数量是10,那么当我把数量增加到2时,它应该反映到20 问题 1我已经研究了一点编辑器方法,我必须在数量列上使用相同的方法,对吗 2如何获取价格列的值并更新其值?有没有像编辑器这样的内置方法??我该怎么办 下面是我准备的JS小提琴 谢谢 - Hardik将您的数据源定义为: 您应该在其中添加数量乘以价格的合计字段。 注意
看到你在中修改的代码,试试谷歌搜索计算值。你会找到相关的例子。嗨,奥娜,很高兴看到你的评论。你的网站和答案都有。他们给出了最好的解决方案。非常感谢你的回复…你说的是聚合函数吗?嗯..我就用谷歌搜索出来。。。你能给我推荐一些学习剑道ui的链接或资料吗?嗨,奥娜,在谷歌搜索之后。。我找不到我的解决方案的相关链接…但是,我得到了RadControls的telerik链接,例如。但这不是我需要的。。。谢谢..你找到了还是没有?我没有找到…所以根据第一个,我需要编写另一个名为CalculatePrice的函数,并从quantity列的编辑器函数调用它,对吗?然后我该如何设置值?事实上,我是新来的。。如果您查看我的JSBin示例,它实际上是一个弹出窗口,打开。。。因此,如果你能向我解释一下我需要遵循的步骤来获得解决方案,那将是非常棒的。。。我会在谷歌上搜索这些步骤并相应地进行RnD。。。谢谢你的链接…嗨,奥娜,非常感谢你的宝贵回复!!但是小提琴很好用…但是如果我只有一个专栏呢?我必须在飞行中改变数值?我的意思是,与其加总列,不如加总列。我该怎么做呢?你是说价格是数量乘以常数吗?哪个是常数的值,10?请让我知道,我会更新这个例子。嗯……不……你的编辑对我来说已经足够修复了:谢谢,奥娜!!:嗨,Ona,我有一个关于类似场景的查询,但在本例中,数量列默认为文本框或自动完成。。[链接]当我更改数量时,总计栏应自动更新…如何在数量栏中更改时刷新总计栏?有内置的方法吗?公式是相同的价格*数量=总数…对不起,为什么数字数量是文本框而不是数字文本框?为什么要将输入定义为模板,打破网格是可观察的这一事实?不确定你想得到什么,但这似乎不是最简单的方法
var dataSource = new kendo.data.DataSource({
data : data,
schema: {
model: {
id : "Id",
fields: {
productName: { editable: false},
quantity : { editable: true, type : "number" },
price : { editable: false, type : "number" },
total : { editable: false, type : "number" }
}
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable : true,
height : 400,
toolbar : ["create"],
columns : [
{ field: "productName", title: "Product Name" },
{ field: "quantity", title: "Quantity", format: "{0:c}"},
{ field: "total", title: "Total", template: "#= quantity * price #", width: "150px" },
{ command: ["edit", "destroy"], title: " " }
],
editable : "popup"
});