我为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之后,我可以看到它作为标准工作,但不适合我们。我们错过了什么,或做错了什么?
答案 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;
}
这对我有用。