防止Kendo UI datepickers共享状态

时间:2013-08-14 13:40:43

标签: asp.net-mvc kendo-ui

我注意到了剑道日期选择器的一个奇怪问题。

@(Html.Kendo().DatePickerFor(m => m.BirthDate)
    .Start(CalendarView.Century)
)

@(Html.Kendo().DatePickerFor(m => m.FutureDate)
    .Start(CalendarView.Month)    
)

没有默认值,两个datepickers都会关注当前日期。但是,如果您在一个上选择日期,则另一个将关注同一个日期。例如,如果我选择1970年1月7日为BirthDate,则FutureDate将在1970年1月份开放。

如果提供了默认值,则每个日期选择器仍然关注该日期。

我希望每个日期选择器仍然专注于当前日期,但我不想将当前日期设置为默认值 - 我希望每个日期选择器保持空白,直到用户设置为止。

任何解决方案?我目前在Kendo 2012.3.1315上 - 这是在最新版本中发生的吗?如果没有,我可能会说服我的团队进行升级。

1 个答案:

答案 0 :(得分:0)

稍后回答我自己的问题:

我能够测试最新版本的剑道(2013年第二季度),看来这个问题已得到修复。不幸的是,我的团队目前不想升级。我创建了这个Javascript修复程序以解决问题。

function fixKendoDatePicker(datepicker) {
    if (!datepicker.value()) {
       datepicker.value(new Date());
       datepicker.dateView._calendar();
       datepicker.value(null);
    }
}

对_calendar()的调用使得窗口小部件更改其内部日历以匹配其值 - 否则,除非打开datepicker弹出窗口,否则通常不会更改,并且此方法将没有影响。