0

我为调度程序制作了一个 CustomEditorTemplate。还有一件事没有按预期工作。

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

我们的 RecurrenceEditorFor 看起来像:

<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 之后,我可以看到它作为标准工作,但不适合我们。我们错过了什么,还是做错了什么?

4

1 回答 1

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;        

}

这对我来说效果很好。

于 2014-10-06T11:26:17.143 回答