Question

in my flex application i have a datagrid as 2 columns editable and remaining columns are non editable. in some condition, in runtime i have to change the editable column to non editable...how can i do this?? any suggestions?? Heres my code...

<mx:AdvancedDataGrid id="adg1" editable = "true" designViewDataType="tree">
                        <mx:columns>
                                    <mx:AdvancedDataGridColumn headerText="Name" dataField="name" editable ="true"/>
                                    <mx:AdvancedDataGridColumn headerText="Age" dataField="age" editable ="true"/>
                                    <mx:AdvancedDataGridColumn headerText="Roll No" dataField="num" editable = "false"/>
                        </mx:columns>
            </mx:AdvancedDataGrid>

Thanxx in advance..

Was it helpful?

Solution

Method 1: You can loop through columns, and check editable property:

            for (var i:int = 0; i < adg1.columns.length; i++) 
            {
                if (adg1.columns[i] is AdvancedDataGridColumn)
                {
                    var myCol:AdvancedDataGridColumn = adg1.columns[i] as AdvancedDataGridColumn;

                    trace(myCol.editable);  

                    //for example, change Age column to non editable
                    if (myCol.headerText == 'Age')
                    {
                        myCol.editable = false;
                    }
                }
            }

Method 2:

if you set id for column like:

<mx:AdvancedDataGridColumn id="ageCol" headerText="Age" dataField="age" editable ="true"/>

you can access it this way:

trace("before ageCol editable:",ageCol.editable);

var indx:int = adg1.columns.indexOf(ageCol);
adg1.columns[indx].editable = false;

trace("after ageCol editable:",ageCol.editable);

or if it is applicable, just do:

ageCol.editable = false;

OTHER TIPS

adg1.columns ll return you array of the columns.

loop through columns casting each into AdvancedDataGridColumn and check condition with 'dataField' and make it editable or noneditable as you wish.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top