Kendo UI Grid DateTimePicker编辑器模板 - 保持价值

Eli*_*m99 2 asp.net-mvc datetimepicker kendo-grid

我有一个带有asp.net mvc语法的Kendo UI Grid.我有一个带有日期时间的列以及用于编辑的编辑器模板.当我点击编辑它显示datetimepicker但我不确定如何保持当前值(InvoicedDate)如果已存在.有任何想法吗?

编辑:当我选择日期时,它也不会将该值拉回到更新操作中.我认为问题是相关的.

发票网格:

@(Html.Kendo().Grid<TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel>()
<snip>
 columns.Bound(o => o.InvoicedDate).Width(100).Title("Invoice Date").Format("{0:M/d/yyyy}").EditorTemplateName("Invoice_InvoiceDate");
<snip>
Run Code Online (Sandbox Code Playgroud)

编辑模板(Invoice_InvoiceDate.cshtml):

@model TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel

   @(Html.Kendo().DateTimePicker()
                    .Name("InvoiceDate")
                    .Value(Model == null ? DateTime.Now : Model.InvoicedDate)
                    .Format("M/d/yyyy h:mm tt")
   )
Run Code Online (Sandbox Code Playgroud)

Sha*_*ore 5

我相信你的问题是你的editorTemplate试图接受

@model TMS.MVC.TIMS.Models.Invoice.InvoiceGridModel
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为您调用editorTemplate的网格列可能是Type DateTime.由于类型不匹配,因此您始终会在编辑器模板中将null显示为模型的值.试试这个.

@model DateTime? 
@(Html.Kendo().DateTimePicker()
                .Name("InvoiceDate")
                .Value(Model == null ? DateTime.Now : @Model)
                .Format("M/d/yyyy h:mm tt")
)
Run Code Online (Sandbox Code Playgroud)