Kendo 调度程序在保存前抓取重复规则

Kendo Scheduler Scrape Recurrence Rule Before Save

我有一个 kendo 调度程序的自定义编辑模板。 在所有用于设置日期和重复规则的控件下方,我有一个按钮。 按下按钮加载可用于该约会的人员列表。 为了获得该列表,我正在检查未来访问中的冲突,并且我正在检查人员可用性 table 以确保他们在那些日期有空。

除了在按下“保存”按钮并将数据传输到服务器之前无法获取重复规则外,所有代码都可以正常工作。

尽管所有 select 离子都是在按下我的按钮之前生成的,但 recurrenceRule 属性 是空白的。

似乎 kendo 当您按下保存按钮时,调度程序会格式化该重复规则,然后填充模型并将其传输到服务器。

我可以通过读取 kendo 循环编辑器控件中的小部件来编写自己的循环规则,但是他们没有在小部件上放置 Id,这使得它们很难获得。我认为您可以使用 css selectors,但我没有做过类似的事情,也不想编写自己的循环编辑器。

有谁知道如何在按保存之前在编辑模板中获取重复规则?

流量:

1) 在kendo 重复编辑器

中设置开始和结束日期以及重复模式

2) 按编辑模板表单上的按钮加载可用员工 --- 我需要这里的重复规则。 在服务器端,我将约会扩展到所有出现的地方 然后我根据员工时间表检查每次可能的拜访

3) select 其中一名员工并保存记录。 --- 我无法在此处进行检查,因为必须在保存记录之前对员工进行 select 编辑,而我只想在保存之前提供可用员工的列表。

我尝试了很多东西,包括这个:

var recurEditor = $("#RecurrenceRule").data("kendoRecurrenceEditor");
var recurrenceRule = recurEditor.options.recurrenceRule;
alert("recurrenceRule: " + recurrenceRule); 

但运气不好...

这是解决方案。我知道如果我在这里发布这个问题,经过 2 天的尝试,我会找到解决方案。也许这会对其他人有所帮助。

在加载可用员工按钮的处理程序中,我有以下代码:

var ruleEditor = $('[id="RecurrenceRule"]').getKendoRecurrenceEditor();
if (ruleEditor) {
vRecurRuleValue = ruleEditor.value();
alert("vRecurRuleValue = " + vRecurRuleValue);
}

我的循环编辑器在我的编辑模板中定义如下:

@(Html.Kendo().RecurrenceEditorFor(model => model.RecurrenceRule).HtmlAttributes(new { data_bind = "value:recurrenceRule", data_role = "recurrenceEditor" } ))

我的员工下拉列表有一个过滤器,如下所示:

<div id="EmpAssignedDropdownlist" class="k-edit-field" style="visibility:hidden;">
        @(Html.Kendo().DropDownListFor(m => m.VisitEmployeeM.UserId)
        .AutoBind(false)
        .Text("Please Select") //used to prevent initial datasource.read as AutoBind doesn't work
        .DataTextField("name")
        .DataValueField("id")
        .ValuePrimitive(true)
        .OptionLabel(@Localizer["Please Select"].Value)
        .DataSource(source =>
        {
        source.Read(read =>
        {
        read.Action("GetEmployeesAvailableForPotentialVisit", "DropDownList").Data("filterAvailableEmployeesNoVisitYet");
        }).ServerFiltering(true);
        })
        )
</div>

javascript 函数 "filterAvailableEmployeesNoVisitYet" 传递重复规则和其他我需要检查冲突的数据并加载下拉列表。