代码之家  ›  专栏  ›  技术社区  ›  jinx

KendoUI和json

  •  0
  • jinx  · 技术社区  · 13 年前

    我对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”:8},{“name”:“Portugal”,“id”:9},{“name“:“Greece”,“id”:10},}“name”:“Mauritius”,“id”:11}:“博茨瓦纳”,“id”:13},{“name”:“西班牙”,“id:15},{“name“:“Scottland”,“id=”:16},“name”:“Australia”,“,”id“:23},{”name“:”马来西亚“,”id=“:24},}”name”:“塞舌尔”,“id”:25}],“listType”:“Country”}

    如果有人能给我指明正确的方向或其他什么,请注意,在数据堆栈中,我使用的是“listValues”对象,可能是因为“errorString”:“ok”,“errorCode”:0,“这就是问题所在?

    3 回复  |  直到 13 年前
        1
  •  2
  •   OnaBai    13 年前

    我刚刚试过你的代码,效果非常好!我只需要更改一行代码:url,因为当然,我没有将文件部署在与您相同的路径中。

    这么说…:

    1. 尝试在浏览器中打开 url 当您在代码中键入它并检查它是否真的返回了您在问题中包含的JSON时。
    2. 如果前一点很好,那么如果您的浏览器有开发工具,请检查浏览器控制台中是否没有错误。
    3. 如果您没有开发工具或不知道如何使用它们,请尝试:

    .

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

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

        2
  •  0
  •   Katya S    12 年前

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

        3
  •  0
  •   Dima R.    9 年前

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