2014-01-09 37 views
1

我想獲得一個網格充滿了json響應我會收到時,要求身份驗證的網址端點httpwebrequest調用。該數據將在JSON形式:從httpwebrequest調用網格/圖表的數據調用url

{ 
"data": [ 
    { 
     "value": "(\"Samsung Health\")", 
     "tag": "ME" 
    }, 
    { 
     "value": "(\"Samsung Galaxy Tab\")", 
     "tag": "HIM" 
    }, 
    { 
     "value": "(\"Amazon fire\")", 
     "tag": "ME" 
    } 
] 

}

我不知道如何甚至開始以及是否使用Ext.Ajax.Request或某些類型的從後面的代碼調用。我在後面的代碼中使用vb.net。任何建議感激。 ajax調用的示例代碼;

function getMembers() { 

    var parameters = { 
     node: dynamicNodeId 
    } 

    Ext.Ajax.Request({ 
     url: 'https://data.json', 
     method: 'GET', 
     jsonData: Ext.encode(parameters), 
     success: function (response, opts) { 
      alert('I WORKED!'); 
      //decode json string 
      var responseData = Ext.decode(response.responseText); 

      //Load store from here 
      memberStore.loadData(responseData); 
     }, 
     failure: function (response, opts) { 
      alert('I DID NOT WORK!'); 
     } 

    }); 

} 

網格形成:

var grid = Ext.create('Ext.grid.Panel', { 
    store: store, 
    stateful: true, 
    stateId: 'stateGrid', 
    columns: [ 
     { 
      text: 'Query', 
      flex: 1, 
      sortable: false, 
      dataIndex: 'query' 
     }, 
     { 
      text: 'Last Updated', 
      width: 85, 
      sortable: true, 
      renderer: Ext.util.Format.dateRenderer('m/d/Y'), 
      dataIndex: 'lastChange' 
     }, 

在這裏查詢將是從JSON響應和lastChange當前日期時間的值。我嘗試了代理請求調用,並意識到由於我正在調用不同域上的端點,所以我需要使用jsonp。

var myStore = Ext.create('Ext.data.Store', { 
    model: 'User', 
    proxy: { 
     type: 'jsonp', 
     extraParams: { 
      login: 'username', 
      password: 'password' 
     }, 
     url: 'https://api.data/rules.json', 
     reader: { 
      type: 'json', 
      root: 'rules' 
     }, 
     callbackParam: 'callback' 
    }, 
    autoLoad: true 
}); 

我有可能只是想出一些其他的方式通過確保所有我需要的是通過一些其他的功能調用數據庫中的數據做。

+0

在你的json例子中,代碼沒有被'callback'參數包圍。你的服務是否返回'callback'所包圍的數據?如果您需要'jsonp'來處理'同源'約束,那麼這將是必要的,並且會在'reader'嘗試解析時引發問題。 – weeksdev

+0

這不是一個服務調用,而是一個對api端點的調用,我沒有看到它被回調包圍 – vbNewbie

+0

要使用'jsonp',它必須在'callback'中返回,以便它可以被正確解析,否則'reader'會通過例外,因爲'callback'不存在 – weeksdev

回答

1

您的情況的最佳方法是創建配置了遠程代理的存儲。請參閱本文檔頁面頂部的示例:http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.Store

遠程代理將處理AJAX請求以檢索數據,並且商店將自動管理將數據結果轉換爲Ext.data.Model實例。一旦商店加載了數據,商店所綁定的網格也將自動處理已經填充到商店中的數據。

+0

謝謝你會試試看。 – vbNewbie

+0

你可以看看上面的編輯 – vbNewbie