Kendo ui 有没有办法从KendoUI定期编辑器获取定期字符串?
因为我的计划设置需要一个自定义设置,所以我实现了单独的日历、计划程序和RecurrenceEditor小部件。到目前为止,一切都很顺利,但我无法从RecurrenceEditor小部件获取解析的字符串。我还没有在API文档中看到将规则作为字符串拉入的方法(RecurrenceEditor小部件也没有在那里真正记录) 以下是我设置recurrenceEditor的方式:Kendo ui 有没有办法从KendoUI定期编辑器获取定期字符串?,kendo-ui,recurrence,Kendo Ui,Recurrence,因为我的计划设置需要一个自定义设置,所以我实现了单独的日历、计划程序和RecurrenceEditor小部件。到目前为止,一切都很顺利,但我无法从RecurrenceEditor小部件获取解析的字符串。我还没有在API文档中看到将规则作为字符串拉入的方法(RecurrenceEditor小部件也没有在那里真正记录) 以下是我设置recurrenceEditor的方式: $(document).ready(function() { $("#recurrence-editor").kendoRe
$(document).ready(function()
{
$("#recurrence-editor").kendoRecurrenceEditor({
start: new Date(),
change: function(e)
{
var editor = e.sender;
// I want to get the recurrence rule string here.
}
});
});
在Firebug中,我没有看到任何东西可以提示我可能尝试的方法或属性。到目前为止,我已经尝试:
editor.ruleValue
editor.recurrenceRule
看起来我可以访问一些信息,但如果我可以从递归编辑器本身获得它,我不想将自己的选择写入可解析字符串方法
更新:当我这样设置时:
$(document).ready(function()
{
$("#recurrence-editor").kendoRecurrenceEditor({
start: new Date(),
edit: function(e)
{
var editor = e.sender;
var recurrenceString = editor.RecurrenceRule;
return recurrenceString;
}
});
});
编辑事件从不激发。可能是因为我没有将递归编辑器作为Scheduler小部件的一部分实现,而是作为页面上的一个独立小部件实现
谢谢 您必须从编辑器的事件编辑/创建者模式中描述的事件中获取它。一旦你得到这个事件,它就是
.RecurrenceRule
,如果内存可用,它就是e.event.RecurrenceRule
有趣的是,该字符串中使用的标准是在调度程序的编辑事件中设置定期编辑器,它将触发更改事件,value属性是标准的iCal定期规则 这是我的:
// Setup Recurrence Editor
// Telerik support recommends this method over the common inline script
// because it allows us to choose which recurrence editor. However, it does
// break the MVVM two-way bindings, so the current value MUST be explicitly set
// on creation, and the change event must be handled.
var event = e.event,
container = e.container,
recurrenceEditor = container.find("#recurrenceEditor");
if (kendo.support.mobileOS === false) {
recurrenceEditor.kendoRecurrenceEditor({
start: new Date(e.event.start),
value: e.event.recurrenceRule,
timezone: self.scheduleConfig.timezone,
messages: self.scheduleConfig.messages.recurrenceEditor,
change: function (ev) {
event.set("recurrenceRule", this.value());
}
});
} else {
// The Mobile Recurrence Editor requires the parent kendo pane
// be passed as a parameter, otherwise it will crash when the
// user attempts to alter the frequency
var pane = container.parent(".km-pane").data("kendoMobilePane");
recurrenceEditor.kendoMobileRecurrenceEditor({
start: new Date(e.event.start),
value: e.event.recurrenceRule,
timezone: self.scheduleConfig.timezone,
messages: self.scheduleConfig.messages.recurrenceEditor,
pane: pane,
change: function(ev) {
event.set("recurrenceRule", this.value());
}
});
}
和HTML(在自定义编辑器模板中)
感谢您的回复,但在发送到更改事件处理程序的Javascript事件信息中,事件和RecurrenceRule都未定义。您能否在编辑事件上尝试该代码,看看它是否有效,如果您在更改事件上需要它,我们将向后工作?编辑了上面的原始问题(注释太短)。简而言之,编辑事件与我如何实现RecurrenceEditor小部件无关。
<div class="lineEntry" data-bind="invisible: recurrenceId">
<div id="recurrenceEditor" name="recurrenceRule" data-bind="value: recurrenceRule" class="toInlineBlock">
</div>
</div>