2

私の剣道グリッドには、バランス、調整、調整バランスの3つの列があります。調整バランスは、バランスと調整の合計です。計算されます。調整フィールドを変更した場合。調整バランスは自動的に変更されます。

保存イベントをグリッドにバインドしています。

$("#DebtGrid").data("kendoGrid").bind("save", onDebtGridEditComplete); 



function onDebtGridEditComplete(e) {

    debugger;

    var grid = $('#NonrecourseDebtGrid').data().kendoGrid;        
    var dataItem = e.model;
    e.model.set('TaxAdjustments', e.values.TaxAdjustments);

    var newBalance = getAdjBalance(dataItem.TaxBalance, e.values.TaxAdjustments);
    e.model.set('TaxAdjustmentBalance', newBalance);
    //grid.refresh();
}

次の関数をデバッグしました。newBalanceが計算され、textadjustmentbalanceを設定した後です。e.modelを確認しましたが、何も変わりませんでした。そこにはまだ古い価値があります。

e.model.set('TaxAdjustmentBalance', newBalance);

これが私のグリッドです。

@(Html.Kendo().Grid<LiabilityVM>()
  .Name("DebtGrid")
  .HtmlAttributes(new { style = "height: 300px;" })
  .Columns(columns =>
               {
                   columns.Bound(i => i.Id).Visible(false);
                   columns.Bound(i => i.AccountId).Visible(false);

                   columns.Bound(i => i.AccountNumber)
                       .Title("Account #")

                       .HtmlAttributes(new { nowrap = "nowrap" })
                       .Width(70);
                   columns.Bound(i => i.TaxBalance)
                       .Title("Balance")
                       .HtmlAttributes(textAlign)
                       .Width(70);
                   columns.Bound(i => i.TaxAdjustments)
                       .Title("Adjustments")
                       .EditorTemplateName("AmountEditor")
                       .HtmlAttributes(textAlign)
                       .Width(70)
                       .ClientFooterTemplate("<span><b> Total: </b></span>")
                       .FooterHtmlAttributes(textAlign);
                   columns.Bound(i => i.TaxAdjustmentBalance)
                       .Title("Adj. Balance")
                       .ClientTemplate("<span href='\\#' style='white-space:nowrap'>#= TaxAdjustmentBalance #</span>")
                       .HtmlAttributes(textAlign)
                       .Width(70)
                       .ClientFooterTemplate("#= formatAmount(getTotalAdjBalance('NonrecourseDebtGrid'), '{0:c0}') #").FooterHtmlAttributes(textAlign);
                   columns.Bound(i => i.IsSuppressed)
                       .Title("Suppress")
                       .ClientTemplate("#= showCheckBox(IsSuppressed,Source, Id) #")
                            .Width(50)
                            .Sortable(false)
                            .Filterable(false);

               })
      .Editable(editable => editable.Mode(GridEditMode.InCell))

      .DataSource(grid => grid.Ajax()
                              .Batch(true)
                              .Model(model => { 
                                                model.Id(i => i.Id);
                                                model.Field(p => p.AccountNumber).Editable(false);
                                                model.Field(p => p.TaxBalance).Editable(false);
                                                model.Field(p => p.TaxAdjustmentBalance).Editable(false);
                              })
                              .ServerOperation(true)
                              .Create(create => create.Action("Update", "test", parameters))
                              .Read(read => read.Action("Get", "test", parameters))
                              .Update(update => update.Action("Update", "test", parameters))
                              .Aggregates(aggregates =>
                                         {
                                             aggregates.Add(p => p.TaxAdjustmentBalance).Sum();
                                         })
  )
  .Sortable()
  .Filterable()
  .Selectable(s => s.Mode(GridSelectionMode.Single))
  .Resizable(resize => resize.Columns(true))
  .Reorderable(reorder => reorder.Columns(true))
  .ColumnMenu()
  .Scrollable()
  )
4

1 に答える 1

9

これは、フィールドを編集不可に設定したために発生しています。

model.Field(p => p.TaxAdjustmentBalance).Editable(false);

フィールドを編集可能にして、値を表示するだけのカスタムエディターを作成して、ユーザーが編集できないようにすることができます。

于 2013-02-27T17:49:04.737 に答える