Hi guys, I have a problem that I don't know if it's possible to do. I
have a DataGrid, a ComboBox, and a Search input field. When I select a
value in the ComboBox I want the text I enter to filter by what I
selected. Here is my code:

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"; width="100%"
height="340">
        
        <mx:Script>
                <![CDATA[
                        import model.UserModelLocator;
                        import view.UserInfo;
                        
                        [Bindable]
                        private var _userModel:UserModelLocator =
UserModelLocator.getInstance();
                        
                        [Bindable]
                        private var filtersComboBox:Array = [{field:"Date 
Registered",
value:"date_registered"},
                                                                                
                 {field:"Email Address", value:"email"},
                                                                                
                 {field:"First Name", value:"first_name"},
                                                                                
                 {field:"Last Name", value:"last_name"},
                                                                                
                 {field:"City", value:"city"},
                                                                                
                 {field:"State", value:"state"},
                                                                                
                 {field:"ZIP Code", value:"zipcode"},
                                                                                
                 {field:"Gender", value:"gender"},
                                                                                
                 {field:"Disney Optin", value:"disney_optin"},
                                                                                
                 {field:"Weather Channel Optin", value:"weather_optin"}];
                        
                        private function filterGrid(): void
                        {
                                _userModel.userInfo.filterFunction = filterBy;
                                _userModel.userInfo.refresh();
                                trace(filterList.selectedItem.value);
                        }
                        
                        private function filterBy(item:Object): Boolean
                        {
                                var isMatch:Boolean = false;
                                                        
                                /**** THIS IS WHERE I HAVE PROBLEM ****/
                                /**** IF I USE
"item.zipcode.toLowerCase().search(search.text.toLowerCase()) != -1"
it works good ****/             
                                if
(item.(filterList.selectedItem.value).toLowerCase().search(search.text.toLowerCase())
!= -1)
                                {
                                        isMatch = true;
                                }
                                
                                return isMatch;
                        }
                ]]>
        </mx:Script>
        <mx:Grid width="100%">
                <mx:GridRow width="100%">
                        <mx:GridItem width="100%">
                                <mx:DataGrid id="userGrid" 
allowDragSelection="true"
dataProvider="{_userModel.userInfo}" width="100%" height="300">
                                        <mx:columns>
                                                <mx:DataGridColumn 
dataField="date_registered" headerText="Date
Registered" minWidth="140"/>
                                                <mx:DataGridColumn 
dataField="email" headerText="Email Address"
minWidth="200"/>
                                                <mx:DataGridColumn 
dataField="first_name" headerText="First
Name" minWidth="50"/>
                                                <mx:DataGridColumn 
dataField="last_name" headerText="Last Name"
minWidth="90"/>
                                                <mx:DataGridColumn 
dataField="address" headerText="Address"
minWidth="130"/>
                                                <mx:DataGridColumn 
dataField="address2" headerText="Apt/Suite"
minWidth="50"/>
                                                <mx:DataGridColumn 
dataField="city" headerText="City"
minWidth="60"/>
                                                <mx:DataGridColumn 
dataField="state" headerText="State"
minWidth="30"/>
                                                <mx:DataGridColumn 
dataField="zipcode" headerText="ZIP Code"
minWidth="30"/>
                                                <mx:DataGridColumn 
dataField="birth_date" headerText="Date of
Birth" minWidth="50"/>
                                                <mx:DataGridColumn 
dataField="gender" headerText="Gender"
minWidth="30"/>
                                                <mx:DataGridColumn 
dataField="disney_optin" headerText="Disney
Optin" minWidth="60"/>
                                                <mx:DataGridColumn 
dataField="weather_optin" headerText="Weather
Channel Optin" minWidth="60"/>
                                        </mx:columns>
                                </mx:DataGrid>
                        </mx:GridItem>
                </mx:GridRow>
                <mx:GridRow width="100%">
                        <mx:GridItem width="100%" horizontalAlign="right">
                                <mx:ComboBox dataProvider="{filtersComboBox}" 
labelField="field"
id="filterList" fontSize="11" height="22"/>
                                <mx:TextInput width="200" height="20" 
fontSize="9"
change="filterGrid()" id="search"/>
                        </mx:GridItem>
                </mx:GridRow>
        </mx:Grid>
</mx:Canvas>

Reply via email to