怎么根据情况,阻止flex的combobox的close事件
我自定义了一个combobox,下拉列表是带checkbox的树形结构,可以多选。但是现在选择一个后,下拉列表就收起来了,再选择就要再打开combobox。首先check...
我自定义了一个combobox,下拉列表是带checkbox的树形结构,可以多选。但是现在选择一个后,下拉列表就收起来了,再选择就要再打开combobox。
首先checkbox的点击事件已经阻止上浮,问题出在,我点击checkbox之后会修改treeItemRenderer中的数据源,为了立马看到效果,我使用了数据源中的itemUpdate方法,使树的视图立即更新,应该是这里触发了什么事件,造成combobox关闭。请问有什么方法,阻止该事件导致的combobox关闭。
treeItemRenderer的一部分代码如下,问题出在tmpTree.itemUpdated(item,stateField,oldValue,newValue);
private function toggleChildren(item:Object, tree:Tree, state:int):void
{
if (item == null)
return ;
else
{
var stateField:String=myTree.checkBoxStateField;
var tmpTree:IList=myTree.dataProvider as IList;
var oldValue:Number=item[stateField] as Number;
var newValue:Number=state as Number;
item[myTree.checkBoxStateField]=state;
tmpTree.itemUpdated(item,stateField,oldValue,newValue);
var treeData:ITreeDataDescriptor=tree.dataDescriptor;
if (myTree.checkBoxCascadeOnCheck && treeData.hasChildren(item))
{
var children:ICollectionView=treeData.getChildren(item);
var cursor:IViewCursor=children.createCursor();
while(!cursor.afterLast)
{
toggleChildren(cursor.current, tree, state);
cursor.moveNext();
}
}
}
} 展开
首先checkbox的点击事件已经阻止上浮,问题出在,我点击checkbox之后会修改treeItemRenderer中的数据源,为了立马看到效果,我使用了数据源中的itemUpdate方法,使树的视图立即更新,应该是这里触发了什么事件,造成combobox关闭。请问有什么方法,阻止该事件导致的combobox关闭。
treeItemRenderer的一部分代码如下,问题出在tmpTree.itemUpdated(item,stateField,oldValue,newValue);
private function toggleChildren(item:Object, tree:Tree, state:int):void
{
if (item == null)
return ;
else
{
var stateField:String=myTree.checkBoxStateField;
var tmpTree:IList=myTree.dataProvider as IList;
var oldValue:Number=item[stateField] as Number;
var newValue:Number=state as Number;
item[myTree.checkBoxStateField]=state;
tmpTree.itemUpdated(item,stateField,oldValue,newValue);
var treeData:ITreeDataDescriptor=tree.dataDescriptor;
if (myTree.checkBoxCascadeOnCheck && treeData.hasChildren(item))
{
var children:ICollectionView=treeData.getChildren(item);
var cursor:IViewCursor=children.createCursor();
while(!cursor.afterLast)
{
toggleChildren(cursor.current, tree, state);
cursor.moveNext();
}
}
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应
|
问题解决率99%
|
24小时在线
立即免费咨询律师
10386人正在获得一对一解答
成都星星点灯5分钟前提交了问题
石家庄麦田守望1分钟前提交了问题
南昌湖上倒影2分钟前提交了问题