Kendo Scheduler RecurrenceEditor用于将Start设置为选定日期

时间:2014-09-17 08:42:15

标签: javascript kendo-ui kendo-asp.net-mvc kendo-scheduler

我为Scheduler制作了一个CustomEditorTemplate。并且有一件事没有按预期发挥作用。

对于RecurrenceEditorFor,它有一个End On,您可以在其中选择日期。但是对于RecurrenceEditorFor,它会自动将Start设置为当前日期,而不是调度程序的选定日期。

我们的RecurrenceEditor看起来像:

<div data-container-for="recurrenceRule" class="k-edit-field">
      @(Html.Kendo().RecurrenceEditorFor(model => model.RecurrenceRule).Messages(m => SchedulerHelper.MessageLocaliztion(this, m))
      .HtmlAttributes(new { data_bind = "value:recurrenceRule" })
      )
</div>

我可以将原因设置为特定日期,

<div data-container-for="recurrenceRule" class="k-edit-field">
      @(Html.Kendo().RecurrenceEditorFor(model => model.RecurrenceRule).Messages(m => SchedulerHelper.MessageLocaliztion(this, m))
      .HtmlAttributes(new { data_bind = "value:recurrenceRule" })
      .Start(new DateTime(2014,8,4))
      )
</div>

,但如果我在此之前选择一个日期,这将无效。

即使我在当前日期之后选择了一个日期,它也会给我这个日期。所以这不是因为这个当前日期是最小的,但它必须是静态日期,设置在某个地方,或者不知何故。

我还尝试使用一些JavaScript在输入字段中设置文本,但这样就无法在当前日期之前选择日期。这也会使RecurrenceRule陷入困境。

在我们添加CustomEditorTemplate之后,我可以看到它作为标准工作,但不适合我们。我们错过了什么,或做错了什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法:

我在Recurrencerule div上添加了一个click方法:

$("div[name='RecurrenceRule']").on("click", function () {
    window.changerecurrenceStart();
 });

和方法changerecurrenceStart

  function changerecurrenceStart()
{
    var date = $("#startDate").data("kendoDatePicker")._value;

        $("#RecurrenceRule").data("kendoRecurrenceEditor").options.start = date;
        $("#RecurrenceRule").data("kendoRecurrenceEditor").options.value = date;        

}

这对我有用。