2014-03-26 48 views
1

在我的表單中,我使用Kendo UI中的DateTimePicker。當我按下提交按鈕時,DateTimePicker的焦點被觸發,而不是表單提交事件。Kendo DateTimePicker塊表單提交事件

@using (Html.BeginForm("Edit", "NursingHome", FormMethod.Post, new { @class = "form-horizontal", @role = "form" })) 
{ 
    @Html.AntiForgeryToken() 

    <div class="form-group"> 
      @Html.LabelFor(model => model.ShortTimeCare, new { @class = "col-xs-4 col-sm-3 col-md-2 col-lg-2 control-label" }) 
      <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2"> 
       <div class="input-group"> 
        <span class="input-group-addon"><span class="fa fa-user"></span></span> 
        @(Html.Kendo().NumericTextBoxFor(model => model.ShortTimeCare) 
          .Format("n0") 
          .Min(0) 
         ) 
       </div> 
      </div> 
      <div class="col-xs-2 col-sm-2 col-md-2 col-lg-2"> 
       @(Html.Kendo().DateTimePickerFor(model => model.ShortTimeCareForDate) 
         .Name("ShortTimeCareForDate") 
         .Value(DateTime.Now) 
         .Interval(15) 
       ) 
      </div> 
     </div> 
     <div class="form-group"> 
      <div class="col-xs-offset-4 col-sm-offset-3 col-md-offset-2 col-lg-offset-2 col-xs-10 col-sm-10 col-md-2 col-lg-2"> 
       <button type="submit" class="btn btn-default">Save</button> 
      </div> 
     </div> 
} 

我忘記了什麼嗎?

在我的ViewModel中,我有一個DateTime屬性。

public DateTime ShortTimeCareForDate { get; set; } 

當我按下提交按鈕Curser跳轉到DateTimePicker字段。沒有其他事情發生

當我按照以下方式更改代碼時,submit事件按需要工作。 (也許與模型datetime屬性有問題)

<div class="col-xs-2 col-sm-2 col-md-2 col-lg-2"> 
    @(Html.Kendo().DateTimePicker() // For(model => model.ShortTimeCareForDate) 
     .Name("ShortTimeCareForDateXXXXX") 
     .Value(DateTime.Now) 
     .Interval(15) 
    ) 
</div> 

問候, 馬爾科

+0

當您按下日期選擇器打開的按鈕?必須有其他代碼導致此 – CSharper

+0

聽起來像驗證事件中的行爲。我們需要更多的代碼來查看問題所在。 – Pete

+0

我已更新我的問題 – Marko

回答

0

當我用英語日期格式,然後它工作。但我需要德國格式。

英語:

@(Html.Kendo().DateTimePickerFor(model => model.ShortTimeCareForDate) 
    .Name("ShortTimeCareForDate") 
    .Value(DateTime.Now) 
    .Format("yyyy-MM-dd hh:mm:ss") 
    .Interval(15) 
) 

德國

@(Html.Kendo().DateTimePickerFor(model => model.ShortTimeCareForDate) 
    .Name("ShortTimeCareForDate") 
    .Value(DateTime.Now) 
    .Format("dd.MM.yyyy hh:mm:ss") 
    .Interval(15) 
) 
0

使用按鈕類型= 「按鈕」,而不是使用提交

<div class="form-group"> 
      <div class="col-xs-offset-4 col-sm-offset-3 col-md-offset-2 col-lg-offset-2 col-xs-10 col-sm-10 col-md-2 col-lg-2"> 
       <button type="button" class="btn btn-default">Save</button> 
      </div> 
     </div> 
0

看起來像你要麼使用了錯誤的文化在客戶端或服務器端。

根據http://docs.telerik.com/kendo-ui/aspnet-mvc/globalization你必須設置德國文化就像如下:

  1. 包括權在〜/腳本/文化/ kendo.culture.de-DE.min.js您要使用的文化

  2. 在Layout.cshtml

    包括文化:

    <script src="@Url.Content("~/Scripts/cultures/kendo.culture.de-DE.min.js")"></script> 
    
  3. 事後設置:

    <script> 
    kendo.culture("de-DE"); 
    </script> 
    

,如果你想設置你需要更新你的web.config一樣,服務器端的文化:

<system.web> 
<globalization uiCulture="de-DE" culture="de-DE"></globalization> 
</system.web> 

這樣就可以解決問題發生