从MVC Razor Kendo Grid日期列中删除时间

时间:2013-06-15 10:33:29

标签: razor kendo-grid

如何限制kendo日期时间选择器以仅允许选择日期?

目前,日期选择器旁边会出现一个时钟图标,我不希望这样。

以日期结尾的字段是我的日期列。

所有日期字段都是可以为空的日期列(即DateTime?)

有人能指出正确的方向吗?

这是我的剃刀:

@(Html.Kendo().Grid(Model.employeedetailsList)
            .Name("DependentGrid")
                   .Columns(columns =>
                   {
                       columns.ForeignKey(p => p.TitleCode, Model.TitleList, "TitleCode", "TitleDescription").Title("Title").Width(130);
                       columns.Bound(p => p.FirstName).Title("First Name");
                       columns.Bound(p => p.MiddleName).Title("Middle Name");
                       columns.Bound(p => p.LastName).Title("Last Name"); ;
                       columns.ForeignKey(p => p.Gender, Model.GenderList, "TitleCode", "TitleDescription").Title("Gender");
                       columns.ForeignKey(p => p.RelCode, Model.RelList, "RelCode", "RelName").Title("Rel");
                       columns.Bound(p => p.DepDOB).Format("{0:dd-MMM-yyyy}").Title("Date of Birth");
                       columns.Bound(p => p.RelStartDate).Format("{0:dd-MMM-yyyy}").Title("Rel Start Date");
                       columns.Bound(p => p.RelEndDate).Format("{0:dd-MMM-yyyy}").Title("Rel End Date");
                       columns.Bound(p => p.EmailAddress).Title("Email");
                       columns.Bound(p => p.DepPassportNumber).Title("Passport Number");
                       columns.Bound(p => p.DepPassportExpDate).Format("{0:dd-MMM-yyyy}").Title("Passport Expiry Date");
                       columns.Bound(p => p.RPNumber);
                       columns.Bound(p => p.RPIssueDate).Format("{0:dd-MMM-yyyy}").Title("RP Issue Date");
                       columns.Bound(p => p.RPExpDate).Format("{0:dd-MMM-yyyy}").Title("RP Expiry Dates");
                   })

                   .Sortable()
                   .Resizable(resize => resize.Columns(true))

                   .DataSource(dataSource => dataSource
                       .Ajax()
                        .Batch(true)
                       .ServerOperation(false)
                       .Model(model =>
                       {
                           model.Id(m => m.DependantDetialId);

                       })
                       .Update(update => update.Action("employeedetails_Update", "Mycontroller")
                 .Data("additionalData"))
                 .Create(create => create.Action("employeedetails_Create", "Mycontroller")
                 .Data("additionalData"))
                 .Destroy(delete => delete.Action("employeedetails_Destroy", "Mycontroller")
             )
                 .Events(e => e.RequestEnd("DependentGrid_onComplete")
                 )
                   )
                   )

3 个答案:

答案 0 :(得分:4)

这对我来说要容易得多。如果您正在使用MVC,请在模型中告诉它使用DataType.Date

[DataType(DataType.Date)]
public DateTime RelStartDate{ get; set; }

页面顶部需要using System.ComponentModel.DataAnnotations;才能包含这些标记。

来源:http://www.telerik.com/forums/remove-time-timepicker-from-grid

答案 1 :(得分:0)

当我只想要日期而不是时间时,我通常会做的是为该特定字段创建一个编辑器模板。

在视图文件夹中,您可以创建一个名为EditorTemplates的新文件夹。在你的情况下可能是/Views/Employees/EditorTemplates。在该文件夹中,您将创建一个名为RelStartDate.cshtml的文件,我们将使用该文件显示DatePicker控件。

在新文件中添加以下行:

@model DateTime?
@(Html.Kendo().DatePicker()
    .Name("RelStartDate")
    .Value(Model == null ? DateTime.Now.Date : ((DateTime)@Model).Date)
)

要使用它,你只需要写

columns.Bound(p => p.RelStartDate).EditorTemplateName("EmployeeDate");

答案 2 :(得分:0)

a la propiedad del modelo tienes que ponerunaanotacióejemplo:

[UIHint("Date")]// o [DataType(DataType.Date)]
[Display(Name = "Fecha2")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "  {0:MM/dd/yyyy}")]

公共日期时间? fecHastaCuentaExenta {get;组; }