2015-10-20 6 views
1

У меня есть вопрос о сетке кендо. У меня есть два столбца: COMPLETION_DUE_DATE (DateTime) и DAYS_TO_COMPLETE (десятичный). Когда я выбираю дату в DatePicker Completion_Due_Date, как автоматически вычислять разницу дат между COMPLETION_DUE_DATE и сегодняшней датой, а затем передавать это значение в DAYS_TO_COMPLETE. Благодаря!Обновление других ячеек на основе отредактированного значения ячейки kendo grid

@(Html.Kendo().Grid<TRAINING_TRIGGER_CATALOG_PROJECTION>() 
      .Name("CatalogBundleGrid") 
      .Resizable(resize => resize.Columns(true)) 
      .Columns(co => 
      { 
       co.Bound(e => e.CATALOG).Title(""); 
       co.Bound(e => e.SELECTED).Hidden(); 
       co.Bound(e => e.MODULE).Width(150); 
       co.Bound(e => e.MODULE_ID).Hidden(); 
       co.Bound(e => e.COMPLETION_DUE_DATE) 
        .HtmlAttributes(new { @class = "templateCell" }) 
        .ClientTemplate(
        Html.Kendo().DatePicker() 
        .Name("CompletionDueDate_#=MODULE_ID#") 
        .Format("{0:dd/MM/yyyy}") 
        .HtmlAttributes(new { data_bind = "value:COMPLETION_DUE_DATE" }) 
        .Events(e=> e.Change("ChangeDate")) 
        .ToClientTemplate().ToString() 
        ).Format("{0:dd/MM/yyyy}"); 
       co.Bound(e => e.DAYS_TO_COMPLETE).Width(90) 
         .ClientTemplate("<input id='textbox-#=MODULE_ID#' class='txtbox-#=MODULE_ID#' type='text' style='width: 40px; height:15px;' value='#=DAYS_TO_COMPLETE#' /> "     
       co.Bound(e => e.CATALOG_ID).Hidden(); 
      }) 
      .DataSource(ds => ds.Ajax().ServerOperation(false) 
       .Model(model => { model.Id(p => p.CATALOG_ID); model.Field(p => p.MODULE).Editable(false); }).Sort(sort => sort.Add(s => s.MODULE)).Group(P => P.Add(e => e.CATALOG))) 
      .Selectable() 
      .Scrollable(scr => scr.Height("auto")) 
      .AutoBind(true) 
      .Events(e => e.DataBound("CatalogBound")) 
      .HtmlAttributes(new { @class = "grdCollapsableWrapper" }).AutoBind(false) 
      ) 
+0

Существует пост в http://www.telerik.com/forums/update- other-cells-on-the-the-edit-cell-value, но я не знаю, как реализовать это в asp.net mvc – Yan

+0

Это сообщение, на которое я ссылался, чтобы добавить datepicker в сетку http: //www.telerik .com/форумах/кендо-щ-MVC-сетка-с дата-подборщика-и-со mbo-box- (data-of-combo-on-on-each-row-data) – Yan

ответ

2

Используйте изменение событийной Datepicker

.ClientTemplate(Html.Kendo().DatePicker().Events(e=> e.Change("ChangeDate")) 

, а затем определить функцию ChangeDate

function ChangeDate(e) { 



      var grid = $("#TRAINING_TRIGGER_CATALOG_PROJECTION").data("kendoGrid"); 

      // for getting the current row of grid 
      var row = $(e).closest("tr"); 
      var model = grid.dataItem(row); 

      // use model to get values and calculate diff 
      var today = new Date(); 
      var diff = Math.round((today - model.COMPLETION_DUE_DATE)/(1000*60*60*24)); 
      model.set('DAYS_TO_COMPLETE', diff); 

     } 
+0

Возможно ли запустить функцию «ChangeDate», когда пользователь выбирает дату? – Yan

+0

datapicker просто изменил, откройте и закройте событие. но при выборе даты происходит событие изменения. –

Смежные вопросы