1

私の WCF サービスが返されます

{"Success":true,"Errors":null,"ActivityTypes":[{"id":1,"label":"Input"},{"id":2,"label":"Processing"},{"id":3,"label":"Exception Handling"},{"id":4,"label":"Quality Control"},{"id":5,"label":"Output"}]}

以下は、これをデータグリッドに入れるために使用しているコードです

dojo.require("dojox.grid.DataGrid");
dojo.require("dojo.data.ItemFileReadStore");
var xhrArgs = {
    url: xhreturn,
    handleAs: "json",
    preventCache: true
}
var deferred = dojo.xhrGet(xhrArgs);
deferred.then(
          function (data) {
              if (data.Success) {
                  rawdata = [data.GetActivityTypeList];
                  var store = new dojo.data.ItemFileReadStore({
                      data: { identifier: 'id', items: rawdata }
                  });
                  var layout = [[                      
                    { 'name': 'Activity Type', 'field': 'label', 'width': '20%' }
                ]];

                  var grid = new dojox.grid.DataGrid({
                      id: 'grid',
                      store: store,
                      structure: layout,
                      rowSelector: '5px'
                  },document.createElement('div'));

                  dojo.byId("gridDiv").appendChild(grid.domNode);
                  grid.startup();
                  standby.hide();
              }

ActivityTypes で返された値を取得してデータグリッドに表示しようとしています。「申し訳ありませんがエラーが発生しました!」というメッセージが表示され続けます。データ グリッドのレンダリングの代わりに。交換しました

rawdata = [data.GetActivityTypeList];

これとともに

rawdata = [{ "id": 1, "label": "Input" }, { "id": 2, "label": "Processing" }, { "id": 3, "label": "Exception Handling" }, { "id": 4, "label": "Quality Control" }, { "id": 5, "label": "Output"}];

データグリッドは問題なく動作します! どんな助けでも大歓迎です

4

1 に答える 1

0

問題は解決された。改訂されたコード

enter code hereif (data.Success) {
var store = new dojo.data.ItemFileReadStore({ data: { items: data.ActivityTypes} }); var layout = [[ { 'name': 'ID', 'field': 'id', 'width': '20%' }, { 'name': 'Activity Type', 'field': 'label', '幅': '80%' }

]];

重要なのは、ActivityTypes のデータをストアに直接渡すことでした。

于 2012-10-25T05:08:26.620 に答える