kendodropdownlist filter json ответ с полем - PullRequest
0 голосов
/ 01 апреля 2020

Я делаю ниже в настоящее время; все мои JSON записи имеют styleName, однако у некоторых есть поле txt, я хочу отображать только данные styleName, которые имеют поле txt в моем раскрывающемся списке.

var dataSourceJSON = new kendo.data.DataSource({
    transport: {
        read: {
            url: dataURL,
            dataType: "json",
            type: 'GET'
        }
    }});dataSourceJSON.read();

    $("#dropdown").kendoDropDownList({
        dataSource    : dataSourceJSON,
        dataTextField : "styleName"
    });

Прежде чем использовать кендо, я добился этого с помощью ниже, в пределах fetch в классах c. Но я не уверен, как включить такие логи c с kendoDropDownList

if (data[i].txt) {
     option.text = data[i].styleName;
     dropdown.add(option);
}..../

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

  var ctemp;
  var dataSourceJSON = new kendo.data.DataSource({
    transport: {
        read: {
            url: dataURL,
            dataType: "json",
            type: 'GET'
        }
    },
    schema: {
        parse: function(datC) {
            console.log(datC);
            for (let i = 0; i < datC.length; i++) {
                if (datC[i].txt) {
                    ctemp = datC; // <-- This works and what I need
                    console.log(ctemp);
                }
            }
        }
    }
    });dataSourceJSON.read();

    $("#dropdown").kendoDropDownList({
        optionLabel: "Choose",
        dataSource    : dataSourceC,
        dataTextField : ctemp // <--- does nothing
    });

1 Ответ

2 голосов
/ 02 апреля 2020

Вы можете использовать кендо dataSource фильтр для этого случая. Фильтр источника данных

Просто проверьте, не является ли поле пустым, и все.

var dataSource = new kendo.data.DataSource({
  data: [
    { styleName: "Style 1", txt: 'test' },
    { styleName: "Style 2" },
    { styleName: "Style 3", txt: 'test' },
  ],
  filter: { field: "txt", operator: "isnotnull" }
});

Я сделал пример: Фильтр по полю

...