最近在做一个工作流表单过滤的项目,在项目中,出现了一个很棘手的问题,查看了不少资料都没有搞定,是这个问题太简单了?
项目需要,每一个操作改变一次数据,并刷新Tree的显示将操作结果显示出来,我的思路是这样的,在Tree控件数据源刷新之前,记录tree的selectIndex,刷新完成后立即给赋回来。
1: var TreeIndex:int=TreeID.selectedIndex;2: ChangeSqlXml();//刷新数据源3: TreeID.selectedIndex=TreeIndex;
上面是大概的思路,实际上当然不是这么简单。就这样无论怎么刷新数据源,结果都应该可以控制,想法不错!实际上错了,进过几个小时的争扎和几个高人指点,才发现上面根本就行不通。无论selectIndex赋什么值都搞不定。
其实,这个就是一个flash舞台问题,在数据没有完全展现出来之前,你赋值是没有任何作用的,因为根本就没有那个数据!最后用10个字母解决了!
正确的代码是
1: TreeID.validateNow();
2: TreeID.selectedIndex=TreeIndex
被validateNow()耍了!