2012-01-23 1 views
1

Я обновил это, так как вы предположили, что он, похоже, не запускается с обновленным сопоставлением. Не похоже, чтобы это полевое отображение Ext.data.XmlReader работало.Отображение полей XmlReader ExtJS не работает

Ext.require([ 
    'Ext.data.*', 
    'Ext.grid.*' 
]); 

    Ext.onReady(function(){ 
    Ext.define('Book',{ 
     extend: 'Ext.data.Model', 
     fields: [ 
      // set up the fields mapping into the xml doc 
      // The first needs mapping, the others are very basic 
      'Time', 'UserID', 'Type', 'Description','val0' 
     ] 
    }); 


     // create the Data Store 
    var store = Ext.create('Ext.data.Store', { 
     model: 'Book', 
     autoLoad: true, 
     proxy: { 
      // load using HTTP 
      type: 'ajax', 
      url: 'audit-v2.xml', 
      // the return will be XML, so lets set up a reader 
      reader: { 
       type: 'xml', 
       // records will have an "Item" tag 
       //record: 'rows', 
       // idProperty: 'ASIN', 
       //totalRecords: '@total' 
       root: 'Root', 
       record: 'AuditTrail' 
      } 
     } 
    }); 


    // create the grid 
    var grid = Ext.create('Ext.grid.Panel', { 
     store: store, 
     columns: [ 
      {text: "Time", flex: 1, dataIndex: 'Time', sortable: true}, 
      {text: "UserId", width: 180, dataIndex: 'UserId', sortable: true}, 
      {text: "Type", width: 115, dataIndex: 'Type', sortable: true}, 
      {text: "Description", width: 100, dataIndex: 'Description', sortable: true} 
      {text: "Value", width: 100, dataIndex: 'Value', sortable: true} 
     ], 
     renderTo:'example-grid', 
     width: 540, 
     height: 200 
    }); 
}); 

Вот XML

<?xml version="1.0" encoding="UTF-8"?> 
    <Root> 
    <AuditTrail> 
     <Time>2012-01-10 09:27:30 (GMT-05:00)</Time> 
     <UserID>DX</UserID> 
     <Type>FY [REC]</Type> 
     <Description>Server: wamp</Description> 
     <val0>1</val0> 
    </AuditTrail> 
    <AuditTrail> 
     <Time>2012-01-10 09:27:30 (GMT-05:00)</Time> 
     <UserID>DX</UserID> 
     <Type>FY [REC]</Type> 
     <Description>Server:tomcat</Description> 
     <val0>1</val0> 
    </AuditTrail> 
    <AuditTrail> 
     <Time>2012-01-10 09:27:30 (GMT-05:00)</Time> 
     <UserID>DX</UserID> 
     <Type>FY [REC]</Type> 
     <Description>Server: apache</Description> 
     <val0>1</val0> 
    </AuditTrail> 
</Root> 

Это не кажется, что нагружать XML-

Благодарности

ответ

0

Вы устанавливаете record свойство читателя на один уровень слишком высок. В вашем случае, я считаю, было бы лучше установить root на Root и record на AuditTrail. Кроме того, на вашей Book модели, вы должны изменить mapping вашего time поля не делать относительный запрос, то есть, ваша запись поле будет AuditTrail, так что вам не нужно, чтобы развернуть уровень в запросе:

// ... 

    Ext.define('Book',{ 
     extend: 'Ext.data.Model', 
     fields: ['Time', 'UserID', 'Type', 'Description','val0'] 
    }); 

    // ... 

    proxy: { 
     // load using HTTP 
     type: 'ajax', 
     url: 'audit-v2.xml', 
     // the return will be XML, so lets set up a reader 
     reader: { 
      type: 'xml', 
      root: 'Root', 
      record: 'AuditTrail' 
     } 
    } 

    // ... 

Ваш магазин ожидает, что индексы данных будут находиться на уровне AuditTrail элементов, поэтому я упомянул, что вы должны установить record в AuditTrail.

+0

Я обновил его в соответствии с вашим примером, похоже, что отображение не запускается .. есть ли что-то еще в его отсутствие? – user244394

+0

Я был немного смущен вопросом в вашем предыдущем комментарии. Не могли бы вы перефразировать его? :) – Ryan

+0

Ваш пример работал благодаря большому количеству :). Как добавить фид jsonp feed для заполнения таблицы – user244394

Смежные вопросы