Kendo Grid - 如何根据其他网格单元值计算网格单元值

问题描述 投票:0回答:1

我有一个剑道网格,它从 MVC 控制器接收数据。网格显示正确,其中 1 列可编辑。这是网格首次渲染时的样子:

“缩减”列是可编辑列。我需要允许用户在“减少”列的单元格中输入一个值,并根据输入的值,将最终评估计算为原始评估 - 用户输入的值。

这就是剑道网格代码的样子:

@(Html.Kendo().Grid<TaxCertApp.ViewModels.SettlementMemoViewModel>()
   .Name("SettlementMemodGrid")
   .Columns(columns =>
   {
       columns.Bound(nr => nr.TaxYear).Width(50).Title("Tax Year");
       columns.Bound(nr => nr.OriginalAssessment).Width(100).Title("ORIG. ASSESSMENT").Format("{0:##########0}");
       columns.Bound(nr => nr.Reduction).Width(100).Title("REDUCTION").EditorTemplateName("Integer");
       columns.Bound(nr => nr.FinalAssessment).Width(100).Title("FINAL ASSESSMENT").Format("{0:###,###,##0}");
       columns.Bound(nr => nr.Rate).Width(100).Title("RATE").EditorTemplateName("Currency");
       columns.Bound(nr=> nr.RefundSavings).Width(100).Title("REFUND/SAVINGS").Format("{0:###,###,##0}");
       columns.Bound(e => e.Type).Width(100).EditorTemplateName("TypeList").Title("TYPE (R S R/S)");
   })
   .Editable(editable => editable.Mode(GridEditMode.InCell))
   .Pageable()
   .Scrollable()
   .Events(e => e.Edit("OnEdit"))
   .Events(ev => ev.Change("OnChange"))
   .DataSource(dataSource => dataSource
   .Ajax()
   .Batch(true)
   .ServerOperation(false)
   .Model(model =>
   {
       model.Id(n => n.TaxYear);
       model.Field(n => n.OriginalAssessment).Editable(false);
       model.Field(n => n.Reduction).Editable(true);
       model.Field(n => n.FinalAssessment).Editable(false);
       model.Field(n => n.Rate).Editable(true);
       model.Field(n => n.RefundSavings).Editable(true);
       model.Field(n => n.Type).Editable(true);
   })
   .PageSize(20)
   .Read(read => { read.Action("SettlementMemoFetchGrid", "Forms").Data("BuildObjectGridSettMemo"); })
   )

当我单击“缩减”列中的单元格时,将调用 javascript 函数 OnEdit,但它是在对列中的值进行任何编辑之前调用的。 javascript 函数 OnChange 永远不会被执行。

如何单击“减少”列中的单元格,输入一个值,按 Tab 键关闭该列,然后计算最终评估中的值并将其显示在网格中?

谢谢你。

javascript kendo-ui kendo-grid kendo-asp.net-mvc
1个回答
0
投票

仅当网格可选时才会触发更改事件: https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/events/change

对于 MVC 服务器包装器,我想它会是这样的。

.Selectable(selectable => selectable
    .Mode(GridSelectionMode.Row)
    .Type(GridSelectionType.Cell))

https://docs.telerik.com/aspnet-mvc/api/kendo.mvc.ui. Fluent/gridbuilder

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.