2013-10-07 3 views
0

У меня возникла проблема с моим приложением jsf во время его запуска в IE.JSF selectCheckBoxMenu не работает должным образом в IE

selectcheckboxmenu на jsf ведет себя неправильно и имеет флажки элементов меню, перемещаемых под элементами, флажки все еще есть. Ниже приведен скриншот того, что я столкнулся: Image and video hosting by TinyPic

[IMG] http://i43.tinypic.com/8yb976.jpg[/IMG]

код для selectcheckboxmenu приведен ниже:

<p:selectCheckboxMenu value="#{formBean.selectedMovies}" label="Movies" 
    filter="true" filterText="Filter" filterMatchMode="startsWith" 
    panelStyle="width:220px"> 
    <f:selectItems value="#{formBean.movies}" /> 
</p:selectCheckboxMenu> 

Пожалуйста, скажите на милость, где я буду неправильно и в чем проблема. Спасибо заранее.

ответ

2

Существует проблема совместимости с IE. Превосходные интерфейсы совместимы с IE9. И ваш флажок не работает из-за этого.

У меня были те же проблемы. Таким образом, вы должны установить вид совместимости с помощью жизненного цикла JSF

public class UACompatibleHeaderPhaseListener implements PhaseListener { 
@Override 
public void afterPhase(PhaseEvent arg0){} 

@Override 
public void beforePhase(PhaseEvent event){ 
    final FacesContext facesContext = event.getFacesContext(); 
    final HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); 
    response.addHeader("X-UA-Compatible", "IE=edge"); 
} 

@Override 
public PhaseId getPhaseId() { 
    return PhaseId.RENDER_RESPONSE; 
} 
} 

А в вашем Faces-config.xml просто поместите класс с PackageName

<lifecycle> 
    <phase-listener> 
    com.jsf.listener.UACompatibleHeaderPhaseListener 
    </phase-listener> 
</lifecycle> 
+0

хорошо спасибо за помощь, он отлично работает в IE9. Есть ли способ, чтобы мы могли нормально работать на IE 7 и 8? – Kush

+0

Я не буду работать в IE 7 и 8, как и ожидалось ... – BholaVishwakarma

+0

При тестировании в IE7 и IE8 вы абсолютно _must_ тест ни с чем позже IE8. Если это означает, что вам нужно настроить виртуальную машину, сделайте это. Режим совместимости IE9 и IE10 абсолютно неуловим и не полностью эмулирует старые среды вообще. По моему опыту, IE8 действительно правильно эмулировал IE7. – patstuart

1

Я установил его с помощью CSS собственности 'vertical-align',

div.ui-selectcheckboxmenu.ui-widget{ 
width: 100% !important; 
} 
div.ui-widget-header.ui-corner-all.ui-selectcheckboxmenu-header.ui-helper-clearfix{ 
padding: 3px !important; 

} 
input.ui-inputfield.ui-inputtext.ui-widget.ui-state-default.ui-corner-all{ 

width: 90% !important; 

} 
div.ui-chkbox-box.ui-widget.ui-corner-all{ 
vertical-align: top !important; 
margin-top: 3px !important; 
} 
div.ui-selectcheckboxmenu-filter-container{ 
width:75% !important; 
vertical-align: top !important; 
margin-left: 2px !important; 
} 

Протестировано на firefox, chrome и ie9.

Смежные вопросы