簡體   English   中英

將JSON響應元素放入商店-Ext JS

[英]Placing JSON response elements into a store- Ext JS

我想知道最好的方法是將JSON響應的元素加載到商店中。

我有的:

jQuery ajax請求

var foodRequest = $.ajax({
    url: "MyServlet",
    type: "post",
    cache: false,
    dataType: "json",
    data: JSON.stringify(searchquery),
    error : function() {
        alert ('ERROR!! Please re-enter the search criteria and try again.');
                }
});

阿賈克斯回應

{
 "Foods":[
  {
     "Food":{
        "name":"Spaghetti",
        "id":"001",
        "attributes":[
           {
              "attrname":"Price",
              "attrvalue":"18.99"
           },
           {
              "attrname":"Description",
              "attrvalue":"Spaghetti is delicious, don't argue with me"
           },
           etc...

我想要的是:

(每個元素具有4個屬性)

var grid = Ext.define('Myapp.view.Grid' ,{
    extend: 'Ext.grid.Panel',
    id: 'mygrid',', 
    initComponent: function(columns) {

        this.columns = [
            {header: 'attrname',  dataIndex: 'attrvalue', flex: 2 },
            {header: 'attrname',  dataIndex: 'attrvalue', flex: 2 },
            {header: 'attrname',  dataIndex: 'attrvalue', flex: 2 },
            {header: 'attrname',  dataIndex: 'attrvalue', flex: 2 },
            etc...

我如何才能從json響應中獲取屬性並將其放入網格可以使用的商店中,如上所示?

干杯!

您返回的數據看起來像一棵樹。 普通網格可用於固定列。 簡而言之:

  • 網格使用商店
  • 商店使用許多字段或模型。
  • 網格具有許多預定義的列,每個列都通過dataIndex引用一個store(model)字段。

現在,當商店加載數據時(通過代理或通過手動轉儲記錄)。 它在內部創建一條記錄。 記錄中可用的字段是您在商店中定義的字段或在商店使用的模型上定義的字段。

長話短說,網格和存儲的常規設置具有固定數量的列和字段。 在您的情況下,使用TreePanel和存儲可能會更好。 請參閱treepanel示例。

http://docs.sencha.com/extjs/4.0.7/extjs-build/examples/tree/treegrid.html

祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM