Как обрабатывать инициализацию Kendo UI MVVM Date Picker

у меня 2 взгляда...

Один для числового текстового поля:

@Html.TextBoxFor(m => m, new { 
    @class = "k-input",
    data_bind = "value: " + ViewData.TemplateInfo.HtmlFieldPrefix,
    data_role = "numerictextbox",
    data_format = @"\#",
    data_decimals = "0"
})
@Html.ValidationMessageFor(m => m)

И один для средства выбора даты:

@Html.TextBoxFor(m => m, new
{
    @class = "k-input",
    data_bind = "value: " + ViewData.TemplateInfo.HtmlFieldPrefix,
    data_role = "datepicker",
    data_format = "dd MMM yyyy",
    type = "date"
})
@Html.ValidationMessageFor(m => m)

Почему числовое поле работает, а средство выбора даты не работает?

Некоторая дополнительная информация:

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

Данные поступают из конечной точки OData, поэтому даты представлены в стандартном формате ISO.

JavaScript для поддержки этого...

$(function () {
    var model = new kendo.observable({
        data: null,
        fetch: function (callback) {
            $.get("...", function (res) {
                res.date = kendo.parseDate(res.date);
                result.data = res;
                if (typeof callback != 'undefined') { callback(); }
            });
         }
    });
    model.fetch(function () {
        var component = $("#...");
        kendo.bind(component, model.data);
    });
});

Нужно ли как-то относиться к средствам выбора даты иначе, чем к числовым полям? Мой результат - стандартное поле даты html, к которому хром прикрепляет свой базовый инструмент выбора даты, и числовое текстовое поле со стрелками кендо вверх вниз.

Я ожидаю, что после этого оба поля станут стандартными для кендо (если я что-то не пропустил).


person War    schedule 18.08.2015    source источник


Ответы (1)


Итак, получается, что ничего из этого не было ошибкой, и на самом деле это правильный способ инициализировать оба элемента управления с привязанным объектом MVVM.

однако проблема заключалась в другом элементе управления на странице (который находился между элементами управления int и date), что означало, что процесс привязки был прерван после инициализации числового поля, но до средства выбора даты.

Теперь я чувствую себя менее сумасшедшим.

person War    schedule 18.08.2015