Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道网格内联编辑剑道时间选择器不更改值_Javascript_.net_Model View Controller_Kendo Ui_Kendo Asp.net Mvc - Fatal编程技术网

Javascript 剑道网格内联编辑剑道时间选择器不更改值

Javascript 剑道网格内联编辑剑道时间选择器不更改值,javascript,.net,model-view-controller,kendo-ui,kendo-asp.net-mvc,Javascript,.net,Model View Controller,Kendo Ui,Kendo Asp.net Mvc,嗨,我有内联编辑的网格当我想点击单元格进行更新时,我可以看到我的时间选择器,我可以选择值,但当我通过下一个单元格时,值消失了,没有选择或更改任何内容 我怎样才能解决它 @( Html.Kendo().Grid<MockUpForeNet.Controllers.CardDetailController.Days>() .Name("timegrid") .DataSource(d => d.Ajax().Read("TimeGridBi

嗨,我有内联编辑的网格当我想点击单元格进行更新时,我可以看到我的时间选择器,我可以选择值,但当我通过下一个单元格时,值消失了,没有选择或更改任何内容

我怎样才能解决它

    @( Html.Kendo().Grid<MockUpForeNet.Controllers.CardDetailController.Days>()
        .Name("timegrid")
         .DataSource(d => d.Ajax().Read("TimeGridBinding", "CardDetail", new { rule = rule }).Update("UpdateTime","CardDetail").Model(keys =>
    {
       keys.Id(k => k.DayId);
       keys.Field(c => c.DayName).Editable(false);
       keys.Field(c => c.DayId).Editable(false);
       keys.Field("TimeStart", typeof(string)).Editable(true);
       keys.Field("TimeEnd", typeof(string)).Editable(true);
    }).PageSize(7))
               .Columns(c =>
                {
                    c.Bound(p => p.DayId).Width(100).Title(" ").ClientTemplate("#= chk2(data) #").Sortable(false);
                    c.Bound(e => e.DayName).Width(200).Title("Day");
                    c.Bound(e => e.TimeStart).Width(200).Title("Start Time").EditorTemplateName("StartTimeEditor");
                    c.Bound(e => e.TimeEnd).Width(200).Title("End Time").EditorTemplateName("EndTimeEditor");
                })
               .ToolBar(commands =>
                {
                    commands.Save().SaveText(" ").CancelText(" ");
                })
       .Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell))
       .Sortable()
       .ColumnMenu()
    )
这是我的模型

    public class Days
    {
        public int DayId { get; set; }

        public string DayName { get; set; }

        [DataType(DataType.Time)]
        public DateTime TimeStart { get; set; }
        public DateTime TimeEnd { get; set; }
    }
下面是如何绑定数据的示例

                    Days d = new Days();
                    d.DayId = 1;
                    d.DayName = "Monday";
                    d.TimeStart = Convert.ToDateTime("00:00");
                    d.TimeEnd = Convert.ToDateTime("23:59");

添加列,编辑器模板为

columns.Bound(c => c.TimeStart).Title("Trainer").EditorTemplateName("StartTimeEditor").Width(250);
编辑器模板可以按如下方式更改

@using System.Collections

@(Html.Kendo().DateTimePicker()
.Name("TimeStart")
.TimeFormat("hh:mm")
    .HtmlAttributes(new { style = "width:100%",data_format = "hh:mm" })
        .Events(e =>
         {
             e.Change("DtChange");
         })
)
使用所选rowID编写如下更改函数
Dtchange()

    function Dtchange() {
    var dataSource = $("#Grid").data("kendoGrid").dataSource;
    var data = dataSource.data();
    $.each(data, function (index, rowItem) {
        var date = data[index].TimeStart;
        var newdate = moment(date).format('hh:mm');
        if (newdate != 'Invalid date') {
            data[index].set('TimeStart', newdate );
        }
        else {
            data[index].set('TimeStart', "");
        }
    })
}

@Niijn Koderi Woow这很奇怪为什么我不能直接更改而不是编写更改event@saulyasar即使我尝试过,也无法直接改变。所以我找到了这种方法。
    function Dtchange() {
    var dataSource = $("#Grid").data("kendoGrid").dataSource;
    var data = dataSource.data();
    $.each(data, function (index, rowItem) {
        var date = data[index].TimeStart;
        var newdate = moment(date).format('hh:mm');
        if (newdate != 'Invalid date') {
            data[index].set('TimeStart', newdate );
        }
        else {
            data[index].set('TimeStart', "");
        }
    })
}