条件有时不适用于gwt
我的代码中有一个罕见的问题,我有一个基于字符串变量进行非常简单验证的方法:条件有时不适用于gwt,gwt,web-applications,conditional-statements,Gwt,Web Applications,Conditional Statements,我的代码中有一个罕见的问题,我有一个基于字符串变量进行非常简单验证的方法: private void showNextStep(String psCondition,String poStepName){ int liCurrentStep=Integer.valueOf(poStepName); String lsNextTrueStep=moSteps[liCurrentStep][4]; String liNextFalseStep=moSteps[liCurren
private void showNextStep(String psCondition,String poStepName){
int liCurrentStep=Integer.valueOf(poStepName);
String lsNextTrueStep=moSteps[liCurrentStep][4];
String liNextFalseStep=moSteps[liCurrentStep][5];
if ("Yes".equals(psCondition)){
moFrmStepsContainer.getField(liNextFalseStep).hide();
moFrmStepsContainer.getField(lsNextTrueStep).show();
}else{
moFrmStepsContainer.getField(liNextFalseStep).show();
moFrmStepsContainer.getField(lsNextTrueStep).hide();
}
}
现在,这里是棘手的部分:如果我在没有调试模式的情况下执行应用程序,它会一直正确地进行验证,如果它不总是转到else块(或者至少我认为),我尝试使用JS警报(我有一个调用JS方法的类)手动调试并检查变量的值;勇敢的人都很好,验证也很好。这意味着只有调试或在IF块开始之前放置警报,它才能正确地进行验证,否则它总是转到ELSE,您认为它可能是什么
值得一提的是,这是一个在netbeans 6.9中使用GWT2.1框架开发的web应用程序。此应用程序在firefox 25.0.1中运行
谢谢大家!
更新
下面是调用我的方法的事件的代码
final ComboBoxItem loYesNo=new ComboBoxItem("cmbYesNo" + moSteps[liStepIndex][0],"");
loYesNo.setValueMap("Yes","No");
loYesNo.setVisible(false);
loYesNo.setAttribute("parent", liStepIndex);
loYesNo.addChangedHandler(new ChangedHandler() {
public void onChanged(ChangedEvent poEvent){
String lsStepName=loYesNo.getName();
FormItem loItem=moFrmStepsContainer.getField(lsStepName);
String liStepNumber=String.valueOf(loItem.getAttributeAsInt("parent"));
showNextStep((String)poEvent.getItem().getValue(),liStepNumber);
}
});
你能使用最后一个可用的GWT(2.5.1)吗?也许我能。你认为它必须做这个版本吗?
psCondition
从哪里来,什么时候设置?它闻起来像是一个竞争条件……2.1已经过时了,可能有一个问题已经被2.5.1解决了。Js在一个线程中执行,没有并发性。