Пользовательский интерфейс кендо: в поле со списком отображается значение вместо текста

Я использую Kendo UI с AngularJS. У меня возникли проблемы с решением проблемы.

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

см. образец

PS. проблема не ограничивается Angular. Собственная привязка Kendo MVVM имеет ту же проблему.


person U.P    schedule 18.03.2017    source источник


Ответы (2)


Что ж, поскольку это не раскрывающийся список, а поле со списком, и поэтому вы можете написать в нем любой текст, боюсь, вам придется сделать собственную проверку.

Свойство Value просто устанавливает значение, а в случае поля со списком, если значение не совпадает с элементом в источнике данных, оно просто устанавливает значение в поле ввода.

Для проверки я бы использовал dataBound событие, которое запускается один раз после создания компонента. Поскольку он запускается после создания компонента, вы можете легко сравнить выбранное значение со значениями в источнике данных.

Небольшая демонстрация здесь. Надеюсь, поможет.

person Ademar    schedule 18.03.2017

Может быть, я опоздал на вечеринку, но принятый ответ мне не помог.

Если кто-то использует SQL-сервер для хранения своих значений в родительской таблице с внешним ключом, а затем в дочерней таблице, где хранятся все значения со списком. затем я вернул идентификатор и текст выбранного значения (используя левое внешнее соединение).

РЕДАКТИРОВАТЬ: я только что заметил, что это угловое, ниже для kendo-ui Jquery.


SQL

SELECT  col1,
        col2,
        col3,
        ChildID,                -- ID stored in parent table
        childTable.ChildDesc    -- Getting child text 
FROM    parentTable
LEFT OUTER JOIN childTable ON childTable.ChildID = parentTable.ChildID

JS

$("#id").kendoComboBox({
    dataTextField: "Description",
    dataValueField: "ID",
    filter: "contains",
    minLength: 1,
    filtering: onFilterCostCentre,
    value: item.ChildID,
    text: item.ChildDesc
})
person imBlue    schedule 14.09.2018