0

私は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": "South Africa"、 "id": 2}、{"name": "Mozambique"、 "id":3}、{"name": "Philippines"、 "id":4}、{"name": "Namibia"、 "id":5} 、{"name": "United Arab Emirates"、 "id":6}、{"name": "England"、 "id":7}、{"name": "Swaziland"、 "id":8} 、{"name": "Portugal"、 "id":9}、{"name": "Greece"、 "id":10}、{"name": "Mauritius"、 "id":11}、{ "name": "TANZANIA"、 "id":12}、{"name": "Botswana"、 "id":13}、{"name ":" Spain "、" 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}、{"name": ""、 "id":22}、{"name": "Madagascar"、 "id":23}、{"name": "Malaysia "、" id ":24}、{" name ":" Seychelles "、" id ":25}]、" listType ":" Country "}"New Zealand"、 "id":18}、{"name": "Cyprus"、 "id":19}、{"name": "United States"、 "id":20}、{"name": "Germany"、 "id":21}、{"name": ""、 "id":22}、{"name": "Madagascar"、 "id":23}、{"name": "Malaysia" 、"id":24}、{"name": "Seychelles"、 "id":25}]、 "listType": "Country"}"New Zealand"、 "id":18}、{"name": "Cyprus"、 "id":19}、{"name": "United States"、 "id":20}、{"name": "Germany"、 "id":21}、{"name": ""、 "id":22}、{"name": "Madagascar"、 "id":23}、{"name": "Malaysia" 、"id":24}、{"name": "Seychelles"、 "id":25}]、 "listType": "Country"}id ":24}、{" name ":" Seychelles "、" id ":25}]、" listType ":" Country "}id ":24}、{" name ":" Seychelles "、" id ":25}]、" listType ":" Country "}

誰かが私を正しい方向などに向けることができる場合は、データスタックで「listValues」オブジェクトを使用していることに注意してください。これは、「errorString」:「ok」、「errorCode」:0、「問題の部分は?

4

3 に答える 3

2

私はあなたのコードを試したところ、完璧に機能しました!もちろん、ファイルをあなたと同じパスにデプロイしなかったので、コードの行を変更するだけで済みました。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
});

また、エラーアラートが表示され、情報が表示されるかどうかを確認してください。

于 2013-02-21T21:29:20.397 に答える
0

同様の問題がありました-データもエラーもありません。実際の問題は、jsonデータを返すページが「application/json」ではなく「html」コンテンツタイプヘッダーを送信していたことでした。この問題は、実際には次の場所で対処されています:http ://docs.kendoui.c​​om/tutorials/PHP/build-apps-with-kendo-ui-and-php (「データがありません…」のセクションまで半分スクロールします)正しいコンテンツタイプヘッダーを送信していることを確認することで修正されます。

于 2013-05-31T16:19:40.767 に答える
0

私の場合、これがありました。テストhtmlファイルはローカルファイルシステムからのものであり、jsonオブジェクトはサーバーのURLからロードしていました。一度、ローカルファイルシステムから読み取るようにURLを変更すると、問題が解決しました

于 2016-06-21T19:53:58.787 に答える