2

我有一个带有 asp.net mvc 语法的 Kendo UI Grid。我有一个带有日期时间的列以及一个用于编辑的编辑器模板。当我单击编辑时,它会显示日期时间选择器,但我不确定如何保留当前值(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>

编辑器模板 (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")
   )
4

1 回答 1

5

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

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

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

@model DateTime? 
@(Html.Kendo().DateTimePicker()
                .Name("InvoiceDate")
                .Value(Model == null ? DateTime.Now : @Model)
                .Format("M/d/yyyy h:mm tt")
)
于 2013-04-25T12:43:09.013 回答