kendodropdownlist 过滤器 json 具有字段的响应

kendodropdownlist filter json response that has field

我目前正在做以下工作;我所有的 JSON 条目都有 styleName,但是有些条目有字段 txt,我只想在下拉列表中显示有 txt 字段的 styleName 数据列表。

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

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

在使用 kendo 之前,我在经典下拉菜单的 fetch 中通过以下方法实现了这一点。但我不确定如何将这种逻辑与 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
    });

对于这种情况,您可以使用 kendo dataSource 过滤器。 DataSource filter

只需检查一个字段是否为非空即可。

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" }
});

我举了个例子:Filter by field