DataGrid filtering trouble
Kristtee Jul 28, 2010 10:59 PMhi
i have simple xml data and loaded into a dg on stage and have textinput field for filtering. code as follow..........
--------------------
import fl.controls.DataGrid;
import fl.data.DataProvider;
import fl.controls.TextInput;
import fl.controls.dataGridClasses.DataGridColumn;-
var dp:DataProvider;
var itemTextInput:TextInput = new TextInput();
itemTextInput.move(10, 10);
itemTextInput.addEventListener(Event.CHANGE, changeHandler);
addChild(itemTextInput);
var dg:DataGrid = new DataGrid();
dg.addColumn("columnA");
dg.addColumn("columnB");
dg.width = 300;
dg.move(10, 40);
addChild(dg);
var url:String = "itemdata.xml";
var req:URLRequest = new URLRequest(url);
var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, comHandler);
ldr.load(req);
function comHandler(evt:Event):void{
var xmldp:XML = new XML(evt.target.data);
dp = new DataProvider(xmldp);
dg.dataProvider = dp;
}
function changeHandler(event:Event):void {
var arr:Array = dp.toArray();
var filteredArr:Array = arr.filter(filterDataProvider);
dg.dataProvider = new DataProvider(filteredArr);
}
function filterDataProvider(obj:Object, idx:int, arr:Array):Boolean {
var txt1:String = itemTextInput.text;
var txt2:String = obj.item.substr(0, txt1.length);
if (txt1.toLowerCase() == txt2.toLowerCase()) {
return true;
}
return false;
}
----------------------------
here xml
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item columnA="Apples" columnB="Pineapples" />
<item columnA="Bananas" columnB="Woodapples" />
<item columnA="Watermelons" columnB="Pomelos" />
<item columnA="Oranges" columnB="Plums" />
<item columnA="Mangos" columnB="Avacados" />
<item columnA="Coconuts" columnB="Grapes" />
</items>
-----------------
when i try to filter i get this error
TypeError: Error #1010: A term is undefined and has no properties.
at itemdg_fla::MainTimeline/filterDataProvider()
at Array$/_filter()
at Array/http://adobe.com/AS3/2006/builtin::filter()
at itemdg_fla::MainTimeline/changeHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at fl.controls::TextInput/handleChange()
-------------------------
PLEASE GUIDE ME TO WHERE I AM WRONG
APPRECIATE YOUR TIME AND HELP
krs
