在我的flex应用程序中,我有一个数据网格,其中2列是可编辑的,其余的列是不可编辑的。在某些情况下,在运行时我必须将可编辑列更改为非editable...how我可以这样做吗??有什么建议吗?这是我的代码。
<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>
提前感谢in。
发布于 2012-05-08 10:23:20
方法1:您可以遍历列,并检查可编辑属性:
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;
}
}
}
方法2:
如果为列设置id,如下所示:
<mx:AdvancedDataGridColumn id="ageCol" headerText="Age" dataField="age" editable ="true"/>
您可以这样访问它:
trace("before ageCol editable:",ageCol.editable);
var indx:int = adg1.columns.indexOf(ageCol);
adg1.columns[indx].editable = false;
trace("after ageCol editable:",ageCol.editable);
或者,如果适用,只需执行以下操作:
ageCol.editable = false;
发布于 2012-05-08 05:15:47
adg1.column将返回列的数组。
循环遍历列,将每个列转换为AdvancedDataGridColumn,并使用'dataField‘检查条件,并根据需要将其设置为可编辑或不可编辑。
https://stackoverflow.com/questions/10492905
复制相似问题