2013-02-26 63 views
2

在我的劍道網格中,我有3列,平衡,調整和調整平衡。調整餘額是餘額和調整的總和。它會被計算。如果我對調整字段進行了更改。調整平衡應該自動改變。kendo grid,爲什麼e.model.set不工作

我綁定將事件保存到網格。

$("#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是calcualted,並且在設置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() 
) 

回答

8

這是因爲您已將字段設置爲不可編輯。

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

你可以嘗試讓現場編輯和創建自定義editor這只是顯示的值,因此用戶不能編輯它。