我有一个用于剑道调度程序的自定义编辑模板。 在所有用于设置日期和重复规则的控件下面,都有一个按钮。 按下按钮将加载可用于该约会的人员列表。 为了获得该列表,我正在检查未来访问中的冲突,并且正在核对人员可用性表,以确保它们在这些日期都可用。
所有代码都工作正常,除了在按下“保存”按钮并将数据传输到服务器之前无法获得重复规则。
即使在按下我的按钮之前进行了所有选择,recurrenceRule属性仍为空白。
当您按下保存按钮然后填充模型并将其传输到服务器时,似乎kendo Scheduler会格式化重复规则。
我可以通过阅读kendo递归编辑器控件中的小部件来编写自己的递归规则,但是它们没有在小部件上添加ID,这使得它们很难获得。我认为您可以使用css选择器,但我还没有做过类似的事情,并且宁愿不编写自己的递归编辑器。
在按保存之前,是否有人知道如何在编辑模板中获得重复规则?
流量:
1)在kendo重复编辑器中设置开始和结束日期以及重复模式
2)在编辑模板表单上按按钮以加载可用员工 ---我需要在这里重复规则。 在服务器端,我将约会扩展为所有约会 然后我根据员工时间表检查每次可能的访问
3)选择一名员工并保存记录。 ---我无法在此处进行检查,因为在保存记录之前必须选择员工,并且我只想提供可用员工的列表-保存之前。
我尝试了很多事情,包括:
var recurEditor = $("#RecurrenceRule").data("kendoRecurrenceEditor");
var recurrenceRule = recurEditor.options.recurrenceRule;
alert("recurrenceRule: " + recurrenceRule);
但是没有运气...
答案 0 :(得分:0)
这是解决方案。经过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”传递重复规则和其他我需要检查冲突并加载下拉列表的数据。