Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 在Chrome中首次单击列表框后,项目不会设置为禁用_Gwt - Fatal编程技术网

Gwt 在Chrome中首次单击列表框后,项目不会设置为禁用

Gwt 在Chrome中首次单击列表框后,项目不会设置为禁用,gwt,Gwt,这是我的密码: listbox.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { serv.getSlotStatusesStrings(clientFactory.getWorkspaceId(), new AsyncCallback<SlotStatusGwtStruct>()

这是我的密码:

listbox.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                serv.getSlotStatusesStrings(clientFactory.getWorkspaceId(), new AsyncCallback<SlotStatusGwtStruct>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        // TODO Auto-generated method stub
                    }

                    @Override
                    public void onSuccess(SlotStatusGwtStruct result) {
                        List<String> statusList = Arrays.asList(result.styleName);
                        int emtyCounter = 0;
                        boolean passFlag = false;
                        boolean failFlag = false;
                        for(String status : statusList){
                            if(status.equals("empty")){
                                emtyCounter++;
                            }else if(status.equals("pass")){
                                passFlag = true;
                            }else if(status.equals("fail")){
                                failFlag = true;
                            }
                        }
                        if(emtyCounter == statusList.size()){
                            listbox.getElement().<SelectElement>cast().getOptions().getItem(0).setDisabled(true);
                        }
                        if(passFlag == false){
                            listbox.getElement().<SelectElement>cast().getOptions().getItem(1).setDisabled(true);
                        }
                        if(failFlag == false){
                            listbox.getElement().<SelectElement>cast().getOptions().getItem(2).setDisabled(true);
                        }
                    }
                });

            }
        });
    }
listbox.addClickHandler(新的ClickHandler(){
@凌驾
公共作废一次点击(点击事件){
serv.getSlotStatuseStrings(clientFactory.getWorkspaceId(),新的AsyncCallback()){
@凌驾
失败时的公共无效(可丢弃){
//TODO自动生成的方法存根
}
@凌驾
成功时公共无效(SlotStatusGwtStruct结果){
List statusList=Arrays.asList(result.styleName);
int emtyCounter=0;
布尔passFlag=false;
布尔failFlag=false;
用于(字符串状态:statusList){
if(status.equals(“空”)){
emtyCounter++;
}else if(状态等于(“通过”)){
passFlag=true;
}else if(状态等于(“失败”)){
failFlag=true;
}
}
if(emtyCounter==statusList.size()){
listbox.getElement().cast().getOptions().getItem(0).setDisabled(true);
}
if(passFlag==false){
listbox.getElement().cast().getOptions().getItem(1).setDisabled(true);
}
如果(failFlag==false){
listbox.getElement().cast().getOptions().getItem(2).setDisabled(true);
}
}
});
}
});
}
在Firefox中工作正常,但在Chrome浏览器中,当我第一次单击listbox时,我的所有项目都被启用(根据条件,它们应该被禁用),在我再次单击后,我得到了预期的结果


您能给我一些建议如何解决这个问题。

您确定在执行AsyncCallback后启用了它们吗?是的,我确定。暂时我通过将addClickHandler()更改为addMouseOverHandler()解决了这个问题。