【问题标题】:Why is my ExtJS datagrid populating as empty?为什么我的 ExtJS 数据网格填充为空?
【发布时间】:2011-07-29 12:20:46
【问题描述】:

我正在尝试在转移到基于服务器的商店的途中对 ExtJS 数据网格进行概念验证。目前我的代码如下:

var arrayData = [
  ['', 'Held', '', '', 'abc', '', '100.00', '0.00', 'Internal Approval'],
  /* 11 similar rows deleted for sanitization's sake */
  /* I've tried with and without quotes around the monetary amounts. */
  ];

var nameRecord = Ext.data.Record.create([
  {name: 'approved_date', mapping: 1},
  {name: 'approval_status', mapping: 2},
  {name: 'approval_id', mapping: 3},
  {name: 'reference_id', mapping: 4},
  {name: 'manufacturer_distributor_name', mapping: 5},
  {name: 'shipping_authorization_number', mapping: 6},
  {name: 'purchase_order_number', mapping: 7},
  {name: 'original_amount', mapping: 8},
  {name: 'open_amount', mapping: 9},
  {name: 'requestor', mapping: 10}
  ]);

var arrayReader = new Ext.data.ArrayReader({}, nameRecord);

var memoryProxy = new Ext.data.MemoryProxy(arrayData);

var store = new Ext.data.Store({
  reader: arrayReader,
  proxy: memoryProxy
  });

var columnModel = new Ext.grid.ColumnModel([
  {
  header: 'Approved Date',
  sortable: true,

  dataIndex: 'approved_date'
  },
  {
  header: 'Approval Status',
  sortable: true,
  dataIndex: 'approval_status'
  },
  {
  header: 'Approval ID',
  sortable: true,
  dataIndex: 'approval_id'
  },
  {
  header: 'Reference ID',
  sortable: true,
  dataIndex: 'reference_id'
  },
  {
  header: 'Manufacturer / Distributor Name',
  sortable: true,
  dataIndex: 'manufacturer_distributor_name'
  },
  {
  header: 'Shipping Authorization Number',
  sortable: true,
  dataIndex: 'shipping_authorization_number'
  },
  {
  header: 'Purchase Order Number',
  sortable: true,
  dataIndex: 'purchase_order_number'
  },
  {
  header: 'Original Amount',
  sortable: true,
  dataIndex: 'original_amount'
  },
  {
  header: 'Open Amount',
  sortable: true,
  dataIndex: 'open_amount',
  },
  {
  header: 'Requestor',
  sortable: true,
  dataIndex: 'requestor'
  }]);

var gridView = new Ext.grid.GridView();

var selectionModel = new Ext.grid.RowSelectionModel({
  singleSelect: true
  });

var grid = new Ext.grid.GridPanel({
  title: 'Approvals',
  renderTo: Ext.getBody(),
  height: 500,
  width: 700,
  store: store,
  view: gridView,
  colModel: columnModel,
  selModel: selectionModel
  });

这是为了紧跟 Jesus Garcia 的 ExtJS in Action 中第 159-161 页上的“Hello world”级网格示例。就目前而言,我的代码用空白区域填充列名;也就是说,它在 FF/Chrome 上显示列名和一个空白区域,而在 IE6-8 上似乎没有显示任何内容。在 Chrome 中,JavaScript 控制台不显示任何错误消息或其他记录信息。

关于我的代码有什么问题或如何修复它的任何建议?

【问题讨论】:

    标签: javascript ajax datagrid extjs grid


    【解决方案1】:

    IE-6-8 可能不喜欢 dataIndex: 'open_amount', 处的悬空逗号(以及 FF/Chrome 可以原谅的任何其他语法错误)

    您能否发布您在 FF/Chrome 中看到的屏幕截图?

    您的代码可以简化很多。例如只需使用ArrayStore 代替阅读器、代理、记录、存储组合

    编辑-

    var grid = new Ext.grid.GridPanel({
        title: 'Approvals',
        renderTo: Ext.getBody(),
        height: 500,
        width: 700,
        store: new Ext.data.ArrayStore({
          idIndex:0,
          fields: ['approved_date', 'approval_status',{name:'approval_id', type:'int'}] //specify other fields here
        }),
        cm:new Ext.grid.ColumnModel({
          defaults:{
            sortable:true,
            width:200
          },
          columns:[{
           header:'Approval Date',
           dataIndex:'approved_date'
          },{
            header:'Approval Status',
            dataIndex:'approval_status'
          },{
            header:'Approval ID',
            dataIndex:'approval_id'
          }]                    
        })
    });
    
    var myData=[
      ['01/01/11','Held', 1],
      ['02/02/11','Approved', 2]
    ]
    
    grid.getStore().loadData(myData);
    

    【讨论】:

    • 我知道我的代码不是很干;我的目标是完全按照本书的方式完成概念验证。感谢您注意到不必要的逗号;现在 IE8 像 Chrome 和 Firefox 一样呈现,而 IE6-7 短暂地显示一些非常相似的东西,但随后说网络连接被中止,并显示一个通用错误页面。
    • 你可以试试我上面或你的代码中的示例代码,在定义商店后执行 store.load() 。
    • 谢谢!它现在已经启动并运行,我正在启动和修补。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多