1

我有来自网络服务查询(_urlTowns)的以下 json 数据(见下文)。我想将一个 Kendo UI 下拉列表控件绑定到这个 datasourceTowns。

{
"displayFieldName": "TNONAM",
"fieldAliases": {
    "TNONAM": "TNONAM"
},
"fields": [{
    "name": "TNONAM",
    "type": "esriFieldTypeString",
    "alias": "TNONAM",
    "length": 16
}],
"features": [{
    "attributes": {
        "TNONAM": "ANSONIA"
    }
}, {
    "attributes": {
        "TNONAM": "BETHANY"
    }
}, {
    "attributes": {
        "TNONAM": "BRANFORD"
    }
}, {
    "attributes": {
        "TNONAM": "WOODBRIDGE"
    }
}]}
// Towns data source
var dataSourceTowns = new kendo.data.DataSource({
transport: {
    read: {
        url: _urlTowns,
        dataType: "json",
        type: 'GET'
    }
},
schema: {
    data: "features"
}});dataSourceTowns.read();

我需要设置模型属性吗?因为我在使用“TNONAM”中的 dataTextValue 填充 DDL 之后。猜猜我混淆了“功能”和“属性”。

4

3 回答 3

9

也许您的 JSON 对于 DropDownList 来说不是最方便的,但您可以将它绑定到 KendoDropDownList 而无需更改。

将 DropDownList 定义为:

$("#dropdown").kendoDropDownList({
    dataSource    : dataSourceTowns,
    dataTextField : "attributes.TNONAM"
});

请记住,dataTextField它不一定是一个字段,可能是该字段的路径

您的 HTML 在哪里:

<select id="dropdown"></select>
于 2013-11-04T10:31:48.073 回答
1

对于您的下拉配置,您的 json 的一部分需要是:

"features": [{"TNONAM": "ANSONIA"}, 
             {"TNONAM": "BETHANY"},
             {"TNONAM": "BRANFORD"},
             {"TNONAM": "WOODBRIDGE"}]

如果 json 响应严格需要这样,那么您可能必须解析响应数据,例如:

schema: {
        data: function(response) {
            var responsedata = response.features;
            var parsedjson =  []; //use responsedata to make json structure like above
            return parsedjson; 
        }
    }
于 2013-11-04T10:21:56.693 回答
0
 $("#dropDownList1").kendoDropDownList({
            optionLabel: "Select dropdown",
            dataTextField: "dropdown",
            dataValueField: "dropdown",
            dataSource: {
                type: "json",
                transport: {
                    read: {url: "dropdown.json",
                        type: "GET",
                        dataType: "json",
                        contentType: "application/json; charset=utf-8"
                    }
                }
            },
            schema: {
             data: function(data) {
             alert(JSON.stringify(data));
             return eval(data);
             }
             },   
  • dropdown.json 像 :[ ​​{"dropdown":"value 1"}, {"dropdown":"value 2"} ]`
于 2015-06-18T15:00:52.590 回答