【问题标题】:Update other cells based on the edited cell value kendo grid根据编辑的单元格值剑道网格更新其他单元格
【发布时间】:2015-10-21 23:03:08
【问题描述】:

我有一个关于剑道网格的问题。我有两列名为 COMPLETION_DUE_DATE(DateTime) 和 DAYS_TO_COMPLETE(decimal)。当我在 Completion_Due_Date datepicker 中选择一个日期时,如何自动计算 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)
           )

【问题讨论】:

标签: kendo-grid kendo-asp.net-mvc


【解决方案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);

        }

【讨论】:

  • 用户选择日期是否可以触发'ChangeDate'功能?
  • datapicker 仅具有更改、打开和关闭事件。但是当您选择一个日期时,更改事件就会发生。
猜你喜欢
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多