在 Flex 中将删除列添加到带有状态的数据网格



我正在开发一个应用程序,在第一个状态下,您使用dataFields选择一个日期范围,然后按下按钮转到另一个状态并生成一个显示员工列表的数据网格和另一个可滚动的数据网格,其列动态生成,其中包含每个日期每个员工的工作时间。

获取错误消息的步骤顺序为:

  1. 您选择的日期范围,例如:从 01/01/2013 到 01/31/2013
  2. 您按生成按钮(应用程序更改当前状态 = "员工列表",一切正常)
  3. 按下后退按钮(您返回初始状态,一切正常)
  4. 如果您更改的日期范围比日期范围之前的天数多,那么一切正常
  5. 如果您更改的日期范围天数少于日期范围之前的天数,则会出现下一个错误

    类型错误: 错误 #1009: 无法访问空对象引用的属性或方法。at mx.controls.dataGridClasses::D ataGridBase/http://www.adobe.com/2006/flex/mx/internal::columnHeaderWordWrap()at mx.controls.dataGridClasses::D ataGridItemRenderer/validateProperties()at mx.managers::LayoutManager/validateClient()at mx.controls.dataGridClasses::D ataGridHeader/updateDisplayList()at mx.core::UIComponent/validateDisplayList()at mx.managers::LayoutManager/validateDisplayList()at mx.managers::LayoutManager/doPhasedInstantiation()at mx.managers::LayoutManager/doPhasedInstantiationCallback()

如果你谷歌它,那么一些结果需要访问Apache错误报告网站

https://issues.apache.org/jira/browse/FLEX-22108

而且没有更多...

但是我找到了解决它的方法!

首先,为了解决这个问题,我在谷歌上搜索了很多,看起来没有人收到这个错误,我发现这是一个报告给 Apache 的 Flex 错误。我正在分析 DataGrid.as 和 DataGridColumn.as 的原始代码,以考虑可能的解决方案,我正在进行一些测试,但没有任何效果。

我做了什么,我希望它对某人有用

当您单击后退按钮时,在 backbutton_clickEventLister() 内和当前状态="之前;我只是将列数组设置为新的数组();

protected function bttnBack_clickEventHandler(event:Event) : void {
    // This code line solved it
    dtGrdWorkedHours.columns = new Array();
    // Make sure of code it before state change stament
    currentState = "";
}

最新更新