10 Replies Latest reply on Sep 24, 2009 10:00 AM by cdpointpoint

    ExtendedDataTable reRender problem with IE

    cdpointpoint

      Hello,

      I couldn't find anything about this so i'm posting here.

      I have an issue with extendedDataTable and IE6. When i try to reRender an extendedDataTable with IE6 (it's working on firefox but still, i need it to work on IE6 as well) the table rerender correcly the data but borders (bottom and right) disapear so it's rather annoying ...

      To be sure it was not my page, i put 2 extendedDataTable in an ui:composition with no external code, except a reRender between both extendedDataTable, and i reproduced it easily.

      On server refresh there is no problem with the borders, it only happens with reRender and ajax.

      Is this a known bug or i'am using the extendedDataTable wrongly ?

      Thanks.

        • 1. Re: ExtendedDataTable reRender problem with IE
          ilya_shaikovsky

          check please 3.3.2 CR1 if you using some older one.

          • 2. Re: ExtendedDataTable reRender problem with IE
            cdpointpoint

            Thanks for responding.

            I'm using the 3.3.1 and tried the 3.3.2 CR1 yesterday. It didn't solve my problem, actualy it was worse. Borders still disapear and when i have, in the same page as the extendedDataTable, a DataTable inside a modalPanel, borders that are still visible got their size doubled.

            This component has a really strange behaviour on IE6.

            • 3. Re: ExtendedDataTable reRender problem with IE
              cdpointpoint

              No guesses for that one ?
              Maybe i should report it in the bugtracker ?

              • 4. Re: ExtendedDataTable reRender problem with IE
                nbelaevski

                Hi,

                Can you please post example page code?

                • 5. Re: ExtendedDataTable reRender problem with IE
                  cdpointpoint

                  Hi, sorry i couldn't post earlier ..

                  So, here is the example that should be tested in IE6.

                  <?xml version="1.0" encoding="ISO-8859-1"?>
                  <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                   xmlns:ui="http://java.sun.com/jsf/facelets"
                   xmlns:h="http://java.sun.com/jsf/html"
                   xmlns:f="http://java.sun.com/jsf/core"
                   xmlns:a4j="http://richfaces.org/a4j"
                   xmlns:rich="http://richfaces.org/rich"
                   xmlns:c="http://java.sun.com/jstl/core">
                  
                  
                  <a4j:form style="padding:0px;margin:0px;width:100%;text-align:center;">
                  
                  
                   <a4j:commandLink ajaxSingle="true" ignoreDupResponses="true" limitToList="true" id="id_link_viewdetails" reRender="comments_variable" value="reRender">
                   </a4j:commandLink>
                  
                  
                  
                  
                   <rich:spacer width="10" height="10" />
                  
                   <a4j:outputPanel id="comments_variable">
                  
                   <rich:extendedDataTable width="850px" height="100px" enableContextMenu="false"
                   onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                   onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
                   var="comment" value="#{controller.commentaires}"
                   noDataLabel="Aucun commentaire disponible" id="comments_view">
                  
                   <rich:column width="80px">
                   <f:facet name="header">
                   <h:outputText value="Rédacteur" />
                   </f:facet>
                   <h:outputText value="#{comment.creator}" />
                   </rich:column>
                  
                   </rich:extendedDataTable>
                  
                   </a4j:outputPanel>
                  
                   </a4j:form>
                  
                  
                  </ui:composition>
                  
                  


                  Just click on the reRender link and you'll see that borders bottom & right will disapear.

                  Thanks.

                  • 6. Re: ExtendedDataTable reRender problem with IE
                    ilya_shaikovsky

                    try please to add layout="block" to your outputPanel.

                    • 7. Re: ExtendedDataTable reRender problem with IE
                      cdpointpoint

                      Hi and thanks for you help,

                      Unfortunatly, it is still not working with layout="block", if i try to reRender "comments_view" (wich represent the extendedDataTable) and take out the outputPanel, the problem also appears so i don't think it comes from the outputPanel.

                      • 8. Re: ExtendedDataTable reRender problem with IE
                        cdpointpoint

                        I don't know if that helps, but it seems that if i use a template in my ui:composition, and reRender an extendedDataTable that is not in the same ui:define as the component that calls the reRender, the extendedDataTable is normaly displayed.

                        I'll test it more deeply with a simple page code because i'm not sure it's really related ...

                        Do you think templating and ui:insert / ui:define can change something in the reRender process ?

                        • 9. Re: ExtendedDataTable reRender problem with IE
                          ilya_shaikovsky

                          No it should not be a problem.

                          • 10. Re: ExtendedDataTable reRender problem with IE
                            cdpointpoint

                            Well after some tests i got them working, here the procedure :

                            For Ajax reRender :
                            1- ExtendedDataTable must be inside a a4j:form on which we apply the reRender
                            2- Width of the EDT must be set in %

                            For Server reRender (ie : refresh or jsf navigation) :
                            1- EDT must not be a panelGrid (Note : for ajax reRender the EDT can be in a panelGrid )

                            For an EDT inside a modalPanel
                            1- Call Richfaces.ShowModalPanel
                            2- Define a jsFunction to reRender the a4j:form that contains the EDT
                            3- use the onbeforeshow javascript event to call the jsFunction


                            I got it working but it is kind of annoying to check all that each time i want to create an extendedDataTable.

                            I hope this will help you resolve that bug. Thanks.