2013-10-22 1 views
1

webservice에서 데이터를 읽는 JSON 저장소가 있습니다. webservice의 JSON이 유효합니다 (파일에서 직접 데이터를 읽으려고 시도했지만 작동 중입니다).ExtJS 4.2 - asmx의 JSON 저장소가 항목을 표시하지 않습니다.

{ 
"type": "FeatureCollection", 
"name": "Points", 
"keyField": "GPSUserName", 
"features": [ 
    { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [ 
       35.19999, 
       31.780965 
      ] 
     }, 
     "properties": { 
      "GPSId": "<img src=images/battery3.png />", 
      "DateTime": "12/07/2013 09:05:00", 
      "GPSUserName": "13", 
      "GPSUserColor": "#00FF57", 
      "GPSUserIcon": "marker_red2.png", 
      "GPSLabelPosX": "6", 
      "GPSLabelPosY": "7" 
     } 
    }, 
    { 
     "type": "Feature", 
     "geometry": { 
      "type": "Point", 
      "coordinates": [ 
       35.201142, 
       31.780699 
      ] 
     }, 
     "properties": { 
      "GPSId": "<img src=images/battery4.png />", 
      "DateTime": "12/07/2013 09:05:00", 
      "GPSUserName": "14", 
      "GPSUserColor": "#00FF57", 
      "GPSUserIcon": "marker_red2.png", 
      "GPSLabelPosX": "6", 
      "GPSLabelPosY": "7" 
     } 
    } 
] 

은}

다음 저장소에 저장을 사용하여, 모든 것이 잘 작동 : 여기

는 JSON 데이터입니다

initComponent: function() { 

    this.store = new Ext.data.JsonStore({ 
     storeId: 'usersStore', 
     autoLoad: true, 
     autoSync: false, 
     proxy: { 
      type: 'ajax', 
      url: 'data/users.json', 
      reader: { 
       type: 'json', 
       root: 'features' 
      } 
     }, 
     fields: [ 
      { name: 'name', mapping: 'properties.GPSUserName'}, 
      { name: 'date', mapping: 'properties.DateTime' }, 
      { name: 'battery', mapping: 'properties.GPSId' } 
     ] 
    }); 

    this.columns = [ 
     { header: 'name', dataIndex: 'name', flex: 1 }, 
     { header: 'date', dataIndex: 'date', flex: 3 }, 
     { header: 'battery', dataIndex: 'battery', flex: 1 } 
    ]; 

    this.callParent(arguments); 
} 

을하지만 난 (A 웹 서비스를 사용하도록 변경할 때하는 파일 내용을 반환 함) 아무것도 작동하지 않음 :

내가 전화에서 다음 되돌아 볼 불을 지르고에서

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true, XmlSerializeString = false)] 
    public string GetJson() 
    { 
     string res = File.ReadAllText("data\users.json"); 
     return res; 
     /*HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.ContentType = "application/json"; 
     HttpContext.Current.Response.Charset = "utf-8"; 
     HttpContext.Current.Response.Write(res);*/ 
    } 

: enter image description here

그래서 ... 내가 여기 무슨 말이냐210

은이는 웹 서비스입니까?

답변

0

ExtJS 4.2에서 버그가있는 구현 인 ExtJS JsonStore이 있습니다.

Ext.define('Ext.data.JsonStore', { 
    extend: 'Ext.data.Store', 
    alias: 'store.json', 
    requires: [ 
     'Ext.data.proxy.Ajax', 
     'Ext.data.reader.Json', 
     'Ext.data.writer.Json' 
    ], 

    constructor: function(config) { 
     config = Ext.apply({ 
      proxy: { 
       type : 'ajax', 
       reader: 'json', 
       writer: 'json' 
      } 
     }, config); 
     this.callParent([config]); 
    } 
}); 

는 그냥 Ext.data.Store 클래스를 사용하고 모든 것을 찾을해야합니다 :이 클래스의 소스 코드를 보면, 당신은 프록시 설정을 무시 것을 볼 수 있습니다. 이것을 알아 내기 전에 많은 시간을 낭비하십시오.