KendoUI,调整了重复编辑器

时间:2013-12-10 23:12:22

标签: kendo-ui kendo-scheduler

使用KendoUI 2013.3.1109

我正在使用KendoUI's scheduler

我正在使用预订表格的模板,但通过谷歌搜索和浏览论坛,我读到了重新使用他们的重复表格。我甚至通过试验发现,可以通过运行来选择可用的周期选项:

$("#recurrenceEditor").kendoRecurrenceEditor(
    {
      frequencies: ["never", "daily", "weekly", "monthly"]
    }); 
});

上面的代码不会在下拉列表中加载“年度”选项。 网站上没有关于kendoRecurrenceEditor的API文档,但我想知道是否可以调整其他选项,例如在重复过期时删除“never”标记,等等。

1 个答案:

答案 0 :(得分:2)

所以我初始化了Kendo重复编辑器:

 $("#recurrenceEditor").kendoRecurrenceEditor({
            change: function() {
                onRecurrenceEditorChange();
            }
  });

然后我调整了#recurrenceEditor

中可见的内容
var onRecurrenceEditorChange = function() {
            var recurrenceKendoNumericTextBox = $('#recurrenceEditor .k-widget.k-numerictextbox.k-recur-count input[data-role="numerictextbox"]')
                .data('kendoNumericTextBox');

            if (recurrenceKendoNumericTextBox != null) {

                var recurrenceEditorNeverEndOption = _container.find('#recurrenceEditor label:has(.k-recur-end-never)');

                if (recurrenceEditorNeverEndOption != null)
                    recurrenceEditorNeverEndOption.hide();

                recurrenceKendoNumericTextBox.max(10);

                var recurrenceKendoDatePicker = _container.find('#recurrenceEditor .k-datepicker input[data-role="datepicker"]').data("kendoDatePicker");
                if (recurrenceKendoDatePicker != null) {
                    var maxDate = window.moment().add('months', 2).toDate();
                    recurrenceKendoDatePicker.max(maxDate);
                    recurrenceKendoDatePicker.value(maxDate);
                }
            }
        };

然后,如果你想调整间隔,就这样破解:

var recurrencePeriodKendoDropDownList = $('.k-widget.k-dropdown input[data-role="dropdownlist"]').data("kendoDropDownList");
        var recurrencePeriodFilters = [
            {
                field: "value",
                operator: "neq",
                value: 'yearly'
            }, {
                field: "value",
                operator: "neq",
                value: 'monthly'
            },
            // if it's a newres, don't hide 'Never' option which matches to "", 
            {
                field: "value",
                operator: "neq",
                value: someBoolConditionIhave ? "fake" : ""
            }
        ];