Mvvm 剑道UI:在更改另一列的值时更新其中一列的数据

Mvvm 剑道UI:在更改另一列的值时更新其中一列的数据,mvvm,kendo-ui,kendo-grid,Mvvm,Kendo Ui,Kendo Grid,情景 我有一个产品详细信息的网格,在编辑时会打开一个包含该记录详细信息的弹出窗口。除数量字段外,所有字段均为只读。因此,当我增加或减少数量时,价格栏应根据价值反映出来。 如果1的数量是10,那么当我把数量增加到2时,它应该反映到20 问题 1我已经研究了一点编辑器方法,我必须在数量列上使用相同的方法,对吗 2如何获取价格列的值并更新其值?有没有像编辑器这样的内置方法??我该怎么办 下面是我准备的JS小提琴 谢谢 - Hardik将您的数据源定义为: 您应该在其中添加数量乘以价格的合计字段。 注意

情景 我有一个产品详细信息的网格,在编辑时会打开一个包含该记录详细信息的弹出窗口。除数量字段外,所有字段均为只读。因此,当我增加或减少数量时,价格栏应根据价值反映出来。 如果1的数量是10,那么当我把数量增加到2时,它应该反映到20

问题 1我已经研究了一点编辑器方法,我必须在数量列上使用相同的方法,对吗

2如何获取价格列的值并更新其值?有没有像编辑器这样的内置方法??我该怎么办

下面是我准备的JS小提琴

谢谢

- Hardik将您的数据源定义为:

您应该在其中添加数量乘以价格的合计字段。 注意:此外,我还定义了不同字段的类型,以让KendoUI知道它们是数字,并生成正确的小部件

然后,将网格定义为:

在这里,我添加了一个Total列,它使用的模板是数量*价格的结果

每次更新数量时,将更新总数


看到你在

中修改的代码,试试谷歌搜索计算值。你会找到相关的例子。嗨,奥娜,很高兴看到你的评论。你的网站和答案都有。他们给出了最好的解决方案。非常感谢你的回复…你说的是聚合函数吗?嗯..我就用谷歌搜索出来。。。你能给我推荐一些学习剑道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"
});