如何使用.log数据文件显示EXT-js网格

How to show EXT js Grid with .log data file?

本文关键字:显示 EXT-js 网格 文件 数据 何使用 log      更新时间:2023-09-26

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

我认为您需要通过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/

祝你好运。