如何用.log数据文件显示EXT js Grid?

时间:2016-05-10 05:31:13

标签: javascript gridview extjs

我有一个.log文件。我在EXT JS中创建了一个网格示例来显示来自json文件的日志数据(模拟数据)。现在我想显示.log文件中的网格数据。最好的方法是什么?可以将.log文件转换为.json文件(通过解析或说somw如何)或者有更好/明智的方法来做同样的事情吗?

1 个答案:

答案 0 :(得分:0)

我认为您需要通过Ajax请求以不同方式获取数据。

// Should work also in newer ExtJS versions
Ext.create('Ext.grid.Panel', {
  renderTo: Ext.getBody(),
  width: 640,
  height: 480,
  store: new Ext.data.ArrayStore({
    fields: ['id', 'val1', 'val2'],
    data: []
  }),
  columns: [{
    dataIndex: 'id',
    text: 'Id'
  }, {
    dataIndex: 'val1',
    text: 'Value #1'
  }, {
    dataIndex: 'val2',
    text: 'Value #2'
  }],
  listeners: {
    afterrender: function(grid) {
      // Do an Ajax request
      Ext.Ajax.request({
        url: 'data1.log',
        // Will go here, because there is no such file...
        // When you provide a file it will be success and you can handle failure differently
        failure: function(response) {
          // responseText will be response.responseText on success
          // this here is only a mock
          var responseText =    "id1\tval1a\tval1b\nid2\tval2a\tval2b\nid3\tval3a\tval3b",
            data = [];

          // Split your data on new lines and iterate
          Ext.each(responseText.split('\n'), function (record) {
            // Create an empty array
            var item = [];
            // Split your new line-split on tab and iterate
            Ext.each(record.split('\t'), function (recordItem) {
                // push to your new data item
                item.push(recordItem);
            });
            // push to your data
            data.push(item);
          });
          // load the store
          grid.store.loadRawData(data);
        }
      });
    }
  }
});

我提供了一个关于jsfiddle的例子:http://jsfiddle.net/4Lx818ua/

祝你好运。