代码之家  ›  专栏  ›  技术社区  ›  Christian

ExtJS将简单数组设置为存储

  •  0
  • Christian  · 技术社区  · 7 年前

    我有一个codeigniter服务,它返回以下信息:
    {数据:[“CEDULA-1723822761.pdf”,“CROQUIS-17238227 61.pdf”,“PENSION-1723822 761.pdf],成功:“true”}

    var responseData = opts.result.data;
        var documentos = Ext.ComponentQuery.query("#docsTest")[0];
        documentos.setValue(responseData); //This is just to check that the data is correct
        var store = new Ext.data.SimpleStore({
          fields:[
            {name: 'name'}//I'm pretty sure my problem is here
          ]
        });
    
        store.loadData(responseData);
        console.log('store:' + store);
    
        var grid = Ext.ComponentQuery.query("#FldDocumentos")[0];
    
        grid.setStore(store);
    

    我想在网格中的一行中显示服务给出的三个结果中的每一个,但由于数组没有指定字段名,因此存储只创建三个空对象。如何在存储中正确存储每个数组字符串?
    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sudhakar    7 年前

    创建一个数组并使用name属性存储数据。所以,当您将其添加到存储时,网格可以正确显示数据。

    var responseData = opts.result.data;
    var documentos = Ext.ComponentQuery.query("#docsTest")[0];
    documentos.setValue(responseData); //This is just to check that the data is correct
    var store = new Ext.data.SimpleStore({
      fields:[
        {name: 'name'}//I'm pretty sure my problem is here
      ]
    });
    
    var nameList = [];
    for(var i = 0 ; i < responseData.length ; i++){
        nameList.push({ name = responseData[i]});
    }
    
    store.loadData(nameList);
    console.log('store:' + store);
    
    var grid = Ext.ComponentQuery.query("#FldDocumentos")[0];
    
    grid.setStore(store);