【问题标题】:Remove time from MVC Razor Kendo Grid date column从 MVC Razor Kendo Grid 日期列中删除时间
【发布时间】:2013-06-15 10:33:29
【问题描述】:

我如何限制剑道日期时间选择器只允许选择日期?

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

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

所有日期字段都是可以为空的日期列(即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")
                 )
                   )
                   )

【问题讨论】:

    标签: razor kendo-grid


    【解决方案1】:

    这对我来说要容易得多。如果您使用 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

    【讨论】:

      【解决方案2】:

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

      在您的视图文件夹中,您创建一个名为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");
      

      【讨论】:

      • 注意:如果您对旧的 DateTimePicker 进行任何验证,您可能会在 kendo.web.js 中收到运行时错误:“'find(...).data(...)' is使用此更改日期时为空或不是对象”。假设您使用var container = $(input).closest("tr"); var dateToValidate = container.find("input[name=RelStartDate]").data("kendoDateTimePicker").value(); - 您需要将其更改为kendoDatePicker
      【解决方案3】:

      A la propiedad del modelo tienes que poner una anotación ejemplo:

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

      公共日期时间? fecHastaCuentaExenta { 得到;放; }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多