我使用下面的代碼XML直接加載到一個DataGrid:基於標題如何訂購AS3中的datagrid列?
import flash.events.Event;
import fl.data.DataProvider;
import flash.net.URLRequest;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, directoryXMLLoaded);
function directoryXMLLoaded(e:Event){
var dp:DataProvider = new DataProvider(new XML(e.target.data));
directoryGrid.dataProvider = dp;
}
loader.load(new URLRequest("xml/directory.xml"));
我怎樣才能重新排序列?
編輯:
我的XML看起來是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<contacts>
<contact first="Moshe" last="Doe" address="555 5th St" city="Somwhere" state="AA" zip="555555" phone="555-555-5555" />
<contact first="Moshe" last="Doe" address="555 5th St" city="Somwhere" state="AA" zip="555555" phone="555-555-5555" />
<contact first="Moshe" last="Doe" address="555 5th St" city="Somwhere" state="AA" zip="555555" phone="555-555-5555" />
</contacts>
我想要的列出現在屬性的順序(如第一個,最後,地址,城市,州,郵政編碼,電話),但他們不是。
EDIT2:
TheDarklnl有正確的答案。我實現它稍有不同:
function directoryXMLLoaded(e:Event){
var dp:DataProvider = new DataProvider(new XML(e.target.data));
directoryGrid.addColumn("first");
directoryGrid.addColumn("last");
directoryGrid.addColumn("address");
directoryGrid.addColumn("city");
directoryGrid.addColumn("state");
directoryGrid.addColumn("zip");
directoryGrid.addColumn("phone");
directoryGrid.dataProvider = dp;
}
其實,我用上面的代碼中直接加載XML文件到一個DataGrid。我希望列出現的順序與xml屬性出現的順序相同,但它似乎在擾亂順序。我不知道它使用的順序是什麼,但每次都是一致的,但不是我想要的。 – Moshe 2010-11-22 00:50:31
啊..我明白你的意思了。我已經更新了我的答案。 – TheDarkIn1978 2010-11-22 01:26:06
實際上,我通過首先手動添加所有列來做同樣的事情。你的解決方案更好。 – Moshe 2010-11-22 01:40:43