Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.2
-
Fix Version/s: 3.0
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Test
-
Workaround Exists:Yes
-
Workaround Description:Use rendered instead of visible
Description
There is a commandButton defined with a visible property as follows:
<ice:commandButton type="submit" value="Test" actionListener="#{DocumentBean.buttonDoDocumentActionOutstanding}" visible="#{DocumentBean.documentActionOutstandingAvailable}"></ice:commandButton>
This button shall become available once a certain condition happens on the server (in my example it happens after a action has completed invoked by a outputResource in its Resource.open() method which is invoked separately from browser to server outside the session). Therefore I use the PortableRenderer.render("..") method as adviced for outside session threads here: http://wiki.icefaces.org/display/ICE/Ajax+Push+-+APIs
So far, so good, With Chrome and Firefox this works perfect and the button becomes disabled/enabled by the push as expected. Unfortunately, it doesn't with IE9.
I did a little bit playing and surprise, if I put the same commandButton there with the attribute rendered=.... instead of visible=... it works with IE.
As visible attribute seems to be implemented by css style switching, it looks as if IE has a problem with that ...
<ice:commandButton type="submit" value="Test" actionListener="#{DocumentBean.buttonDoDocumentActionOutstanding}" visible="#{DocumentBean.documentActionOutstandingAvailable}"></ice:commandButton>
This button shall become available once a certain condition happens on the server (in my example it happens after a action has completed invoked by a outputResource in its Resource.open() method which is invoked separately from browser to server outside the session). Therefore I use the PortableRenderer.render("..") method as adviced for outside session threads here: http://wiki.icefaces.org/display/ICE/Ajax+Push+-+APIs
So far, so good, With Chrome and Firefox this works perfect and the button becomes disabled/enabled by the push as expected. Unfortunately, it doesn't with IE9.
I did a little bit playing and surprise, if I put the same commandButton there with the attribute rendered=.... instead of visible=... it works with IE.
As visible attribute seems to be implemented by css style switching, it looks as if IE has a problem with that ...
This is issue is caused by a problem in IE browsers with dynamic updates to the style attribute not being processed correctly. The issue is resolved via special handling features for IE that is included exclusively in the ICEfaces Enterprise Edition (EE) 2.x release (icefaces-ee-ext.jar).
Suggestion is to use the workaround or adopt ICEfaces EE 2.x.