我有一个datagrid,允许用户更改和保存列宽和可见性。我想添加一个重置按钮,将数据网格重置为原始的mxml。这是原始数据网格代码。
<mx:DataGrid x="10" y="47" height="159" width="250" dataProvider="{acOffspring}" id="offspring_dg">
<mx:columns>
<mx:DataGridColumn headerText="Tag" visible="true" dataField="animal_ptag" width="121"/>
<mx:DataGridColumn headerText="Sex" dataField="animal_sex" width="45"/>
<mx:DataGridColumn headerText="Birth Date" visible="true" dataField="animal_birthdate" width="82"/>
<mx:DataGridColumn headerText="Name" visible="false" dataField="animal_name" width="82"/>
<mx:DataGridColumn headerText="Status" visible="false" dataField="status_status" width="82"/>
<mx:DataGridColumn headerText="Breed" visible="false" dataField="breed_breed" width="82"/>
</mx:columns>
</mx:DataGrid>
答案 0 :(得分:0)
我看到了两个选项:
首先是销毁组件并创建它的新实例。像这样:
container.removeChild(offspring_dg);
offspring_dg= new myDataGrid();
container.addChild(offspring_dg);
第二种是以某种方式存储默认值,然后执行循环并重置所有相关属性。像这样:
Column1InitialWidth = offspring_dg.columns[0].width
Column1InitialVisibility = offspring_dg.columns[0].visibility
etc...
当需要重置它们时,只需反过来做同样的事情:
offspring_dg.columns[0].width = Column1InitialWidth
offspring_dg.columns[0].visibility = Column1InitialVisibility
如果你处理很多列,我确信这种方法可以封装得更多。