Обновите другие ячейки на основе отредактированной сетки значений ячеек кендо.

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

@(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)
           )

person Yan    schedule 20.10.2015    source источник
comment
На telerik.com есть сообщение /forums/ но я не знаю, как реализовать это в asp.net mvc   -  person Yan    schedule 20.10.2015
comment
Это пост, на который я ссылался, чтобы добавить средство выбора даты в сетку telerik.com/forums/   -  person Yan    schedule 20.10.2015


Ответы (1)


Используйте изменение события 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);

        }
person samira riazati    schedule 21.10.2015
comment
Можно ли активировать функцию «ChangeDate», когда пользователь выбирает дату? - person Yan; 21.10.2015
comment
сборщик данных просто имеет событие изменения, открытия и закрытия. но когда вы выбираете дату, происходит событие изменения. - person samira riazati; 22.10.2015