data.xml
TestGrid.js
<?xml version="1.0" encoding="UTF-8"?>
<Items>
<Item ASIN="0446355453"
Author="Sidney Sheldon"
Manufacturer="Warner Books"
ProductGroup="Book"
Title="Master of the Game"/>
<Item ASIN="0446613657"
Author="Sidney Sheldon"
Manufacturer="Warner Books"
ProductGroup="Book"
Title="Are You Afraid of the Dark?"/>
<Item ASIN="0446357421"
Author="Sidney Sheldon"
Manufacturer="Warner Books"
ProductGroup="Book"
Title="If Tomorrow Comes"/>
<Item ASIN="0446607207"
Author="Sidney Sheldon"
Manufacturer="Warner Books"
ProductGroup="Book"
Title="Tell Me Your Dreams"/>
<Item ASIN="0446357448"
Author="Sidney Sheldon"
Manufacturer="Warner Books"
ProductGroup="Book"
Title="Bloodline"/>
</Items>
TestGrid.js
/**
* Ext.data.Store 读取XML属性值
* @author KJW
* @param {} config
*/
TestGrid = function(config) {
config = config || {};
this.cm = new Ext.grid.ColumnModel([
{header : 'Author', dataIndex: 'Author'},
{header : 'Manufacturer', dataIndex: 'Manufacturer'},
{header : 'ProductGroup', dataIndex: 'ProductGroup'},
{header : 'Title', dataIndex: 'Title'}
]);
this.store = new Ext.data.Store({
url : 'data.xml',
reader : new Ext.data.XmlReader({
record : 'Item',
id : '@ASIN',
totalRecords: '@total'
}, [
{name: 'Author', mapping: '@Author'},
{name: 'Manufacturer', mapping: '@Manufacturer'},
{name: 'ProductGroup', mapping: '@ProductGroup'},
{name: 'Title', mapping: '@Title'}
])
});
this.store.load();
Ext.applyIf(config, {
title : 'TestGrid',
width : 500,
height : 250,
frame : true
});
TestGrid.superclass.constructor.call(this, config);
}
Ext.extend(TestGrid, Ext.grid.GridPanel, {});
Ext.onReady(function() {
var testGrid = new TestGrid();
testGrid.render("div_main");
});