Kendo Scheduler在保存之前抓取重复规则



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

除了在按下"保存"按钮并将数据传输到服务器之前,我无法获得重复规则外,所有代码都运行良好。

recurrentRule属性为空,即使所有选择都是在按下我的按钮之前进行的。

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

我可以通过阅读剑道递归编辑器控件中的小部件来编写我自己的递归规则,但它们没有在小部件上设置Id,这使得它们很难获得。我认为你可以使用css选择器,但我还没有做过这样的事情,我宁愿不写我自己的递归编辑器。

有人知道在按"保存"之前如何在编辑模板中获取重复周期规则吗?

流量:

1( 在剑道递归编辑器中设置开始和结束日期以及递归模式

2( 按下编辑模板表单上的按钮以加载可用员工---我需要这里的递归规则。在服务器端,我将约会扩展到所有发生的事件然后我对照员工日程检查每一次潜在的访问

3( 选择其中一名员工并保存记录。---我不能在这里进行检查,因为在保存记录之前必须选择员工,并且我只想在保存之前提供可用员工的列表。

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

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

但是运气不好。。。

以下是解决方案。我知道,如果我在这里发布这个问题,经过两天的努力,我会找到解决方案。也许这会帮助其他人。

在我的按钮加载可用员工的处理程序上,我有这样的代码:

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

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

@(Html.Kendo((.RecurrentEditorFor(model=>model.RecurrentRule(.HtmlAttributes(new{data_bind="value:recurrentRule",data_role="recurrentEditor"}((我的员工下拉列表有一个过滤器,如下所示:

<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"传递重复规则和我需要检查冲突的其他数据,并加载dropdownlist。

最新更新