Планировщик кендо Очистить правило повторения перед сохранением - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть пользовательский шаблон редактирования для планировщика кендо.Под всеми элементами управления для установки даты и правила повторения у меня есть кнопка.Нажатие на кнопку загружает список людей, доступных для этой встречи.Чтобы получить этот список, я проверяю конфликты в будущих посещениях и проверяю таблицу доступности людей, чтобы убедиться, что они доступны в эти даты.

Весь код работает нормально, за исключением того, что я не могу получить правило повторениядо нажатия кнопки «Сохранить» и переноса данных на сервер.

Свойство recurrenceRule не заполнено, хотя все выборки выполняются до нажатия моей кнопки.

Кажется, планировщик кендо форматирует это правило повторения, когда вы нажимаете кнопку сохранения, а затем заполняете модель и переносите ее на сервер.

Я мог бы написать собственное правило повторения, читая виджеты вредактор рекуррентности кендо, но они не добавили идентификаторы на виджеты, что затрудняет их получение.Я думаю, что вы можете использовать селекторы CSS, но я не сделал ничего подобного и не хотел бы писать свой собственный редактор повторений.

Кто-нибудь знает, как получить правило повторения, находясь в шаблоне редактирования, до нажатия кнопки Сохранить?

ПОТОК:

1) установить дату начала и окончания, а также шаблон повторения вредактор повторений kendo

2) нажмите кнопку в форме редактирования шаблона, чтобы загрузить доступных сотрудников --- Мне нужно правило повторения здесь.На стороне сервера я расширяю встречу для всех ее случаев, а затем проверяю каждое потенциальное посещение по расписанию сотрудников

3), выбираю одного из сотрудников и сохраняю запись.--- Я не могу выполнить проверку здесь, потому что сотрудник должен быть выбран перед сохранением записи, и я только хочу предоставить список доступных сотрудников - перед сохранением.

Я пробовал много вещей, включая этот:

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

Но не повезло ...

1 Ответ

0 голосов
/ 06 декабря 2018

Вот решение.Я знал, что если я опубликую вопрос здесь, после 2 дней попыток выяснить это, я найду решение.Возможно, это поможет кому-то еще.

В обработчике моей кнопки для загрузки доступных сотрудников у меня есть этот код:

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

Мой редактор повторений определен в моем шаблоне редактирования следующим образом:

@ (Html.Kendo (). RecurrenceEditorFor (model => model.RecurrenceRule) .HtmlAttributes (new {data_bind = "значение: 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» передает правило повторения и другие данные, которые необходимо проверить на наличие конфликтов, и загружает раскрывающийся список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...