【问题标题】:Kendo Scheduler Scrape Recurrence Rule Before Save剑道调度程序在保存前刮除重复规则
【发布时间】:2018-12-06 18:18:16
【问题描述】:

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

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

即使在按下我的按钮之前进行了所有选择,recurrenceRule 属性也是空白的。

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

我可以通过阅读剑道循环编辑器控件中的小部件来编写自己的循环规则,但他们没有在小部件上放置 ID,这使得它们很难获得。我认为您可以使用 css 选择器,但我没有做过类似的事情,并且宁愿不编写自己的循环编辑器。

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

流程:

1) 在剑道循环编辑器中设置开始和结束日期以及循环模式

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

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

我尝试了很多方法,包括:

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

但没有运气......

【问题讨论】:

    标签: kendo-ui kendo-scheduler


    【解决方案1】:

    这是解决方案。我知道如果我在这里发布问题,经过 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”传递了我需要检查冲突的重复规则和其他数据并加载下拉列表。

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多