KendoUI和json

时间:2013-02-21 09:26:54

标签: json html5 kendo-ui

我对kendoUI和json很新,我的问题是,似乎数据没有加载,可能是错误的架构或其他东西,没有错误,只是组合框加载整个时间。 这是我的示例代码:

$(document).ready(function () {
    clientDS = new kendo.data.DataSource({
        transport: {
            read: {
                url: "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430",  //Note the URL path!
                dataType: "json",
                contentType: "application/json; charset=utf-8"

            }
        },
        schema: {
            data: "listValues"               
        }
    });

    $("#kendoCboClient").kendoComboBox({
        placeholder: "Select a Country...",
        dataTextField: "name",
        dataValueField: "id",
        dataSource: clientDS
    });
});

和我的数据堆栈:

{“errorString”:“ok”,“errorCode”:0,“listValues”:[{“name”:“UNKNOWN”,“id”:1},{“name”:“南非”,“ ID “:2},{” 名称 “:” 莫桑比克”, “ID”:3},{ “名称”: “菲”, “ID”:4},{ “名称”: “纳米比亚”, “ID” :5},{“name”:“United Arab Emirates”,“id”:6},{“name”:“England”,“id”:7},{“name”:“Swaziland”,“id” :8},{ “名”: “葡萄牙”, “ID”:9},{ “名”: “希腊”, “ID”:10},{ “名”: “毛里求斯”, “ID”:11 },{ “名称”: “坦桑尼亚”, “标识”:12},{ “名称”: “波扎那”, “ID”:13},{ “名称”: “西班牙”, “ID”:15}, {“name”:“Scottland”,“id”:16},{“name”:“Australia”,“id”:17},{“name”:“New Zealand”,“id”:18},{ “name”:“Cyprus”,“id”:19},{“name”:“United States”,“id”:20},{“name”:“Germany”,“id”:21},{“命名 “:””, “ID”:22},{ “名”: “马达加斯加”, “ID”:23},{ “名”: “马来西亚”, “ID”:24},{ “名”: “塞舌耳”, “标识”:25}], “listType”: “国家”}

如果有人可以指出我正确的方向或某事,请注意在数据堆栈中我使用“listValues”对象,可能是因为“”errorString“:”ok“,”errorCode“: 0,“部分问题是什么?

3 个答案:

答案 0 :(得分:2)

我刚试过你的代码并且工作得很好!我只需更改一行代码:url,当然,我没有在与你相同的路径中部署文件。

这么说......:

  1. 尝试在浏览器中打开url,因为您在代码中输入了var clientDS = new kendo.data.DataSource({ transport: { read: function (options) { $.ajax({ url : "http://localhost/JSON_MP.asmx/GetListCountries?developerId=101&developerHash=9df7273b410761f74331bde746e5c2354b73b487&timestamp=1242207092430", data : options.data, success: function (result) { alert("Good!"); options.success(result); }, error : function (xhr, textStatus, errorThrown) { alert("bad!: " + xhr.status + " - " + textStatus + " - " + errorThrown); } }); } }, schema : { data : "listValues" } }); $("#kendoCboClient").kendoComboBox({ placeholder : "Select a Country...", dataTextField : "name", dataValueField: "id", dataSource : clientDS }); 并检查它是否实际返回了您在问题中包含的JSON。
  2. 如果上一点工作正常,那么如果您的浏览器有开发人员工具,请检查浏览器控制台中是否有错误。
  3. 如果您没有开发人员工具或不知道如何使用它们,请尝试:
  4. {{1}}

    并查看是否显示错误警报,并为您提供一些信息。

答案 1 :(得分:0)

我有类似的问题 - 没有数据也没有错误。实际问题是返回json数据的页面是发送“html”内容类型标题而不是“application / json”。这个问题实际上在这里得到解决:http://docs.kendoui.com/tutorials/PHP/build-apps-with-kendo-ui-and-php(向下滚动到“没有数据......”部分),并通过确保发送正确的内容类型标题来修复。

答案 2 :(得分:0)

就我而言,我有这个: 我的测试html文件来自本地文件系统,我从服务器URL加载的json对象。 有一次,我将url更改为从本地文件系统读取,它解决了问题