正确绑定json与Kendo DropDownList

rip*_*sin 1 javascript json jsonp kendo-ui

我从webservice查询(_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();
Run Code Online (Sandbox Code Playgroud)

我需要设置模型属性吗?正在我用"TNONAM"中的dataTextValue填充DDL之后.猜猜我混淆了"功能"和"属性".

Ona*_*Bai 8

也许你的JSON对DropDownList来说不是最方便的,但你可以将它绑定到KendoDropDownList而不做任何改变.

将DropDownList定义为:

$("#dropdown").kendoDropDownList({
    dataSource    : dataSourceTowns,
    dataTextField : "attributes.TNONAM"
});
Run Code Online (Sandbox Code Playgroud)

请记住,dataTextField并非严格必须是一个字段,可能是该字段的路径.

你的HTML在哪里:

<select id="dropdown"></select>
Run Code Online (Sandbox Code Playgroud)