10 Replies Latest reply on Mar 21, 2007 1:40 PM by dajevtic

    Can trinidad and a4j coexist?

    dajevtic

      Hello everyone. I discovered the strangest problem using trinidad and a4j together.
      At first everything seems to be working OK, but after hitting a a4j:commandLink which rerenders e.g. a datatable which contains tr:commandLinks, the tr:commandLink stop working. After using the :log i discovered that during rendering of the trinidad commandLinks the onclick="submitForm(.....); return false;" entries are not renderer at all anymore.
      Did anyone experience a similar problem?
      Is it possible to reRender trinidad components with a4j?

      Any help would be greatly appreciated!

        • 1. Re: Can trinidad and a4j coexist?

           

          "dajevtic" wrote:
          Is it possible to reRender trinidad components with a4j?


          Yes, if the component is enabled to be rendered separately from the parent content. Otherwise, you must point with reRender to the parent component.

          This issue is not specific to Trininad. The same is true for h:commandLink that cannot be re-rendered separately, but together with outer h:form



          • 2. Re: Can trinidad and a4j coexist?
            dajevtic

            Thank you for the answer. I see, now.
            I tried it out and it works fine.
            The only component that does not follow your descrription is rich:datascroller
            When using rich:datascroller even when I put the reRender="formname" property in it, the links won't work anoymore after rerendering.

            Any idea why and how to fix it?

            • 3. Re: Can trinidad and a4j coexist?

              Could you provide more details about the latest use case? I.e. what are the steps to reproduce the problems that you have on your side

              • 4. Re: Can trinidad and a4j coexist?
                dajevtic

                Certainly, thanks for offering to help!

                I created a small xhtml page showing the problem:

                
                <div xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:rich="http://richfaces.ajax4jsf.org/rich"
                 xmlns:f="http://java.sun.com/jsf/core"
                 xmlns:t="http://myfaces.apache.org/tomahawk"
                 xmlns:h="http://java.sun.com/jsf/html"
                 xmlns:tr="http://myfaces.apache.org/trinidad"
                 xmlns:s="http://jboss.com/products/seam/taglib"
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">
                 <ui:composition template="/layout/template.xhtml">
                 <ui:define name="body">
                 <h:form id="dtform">
                 <t:dataTable rows="5" var="row" id="thetable" value="#{productTypeModel}">
                 <f:facet name="header">
                 <a4j:commandLink reRender="dtform" value="Products" action="#{productTypeHandler.dummy}" />
                 </f:facet>
                 <h:column>
                 <f:facet name="header">
                 Action
                 </f:facet>
                 <tr:commandLink action="#{productTypeHandler.select(row)}">
                 <t:outputText value="Select" />
                 </tr:commandLink>
                 </h:column>
                 <h:column>
                 <f:facet name="header">
                 Name
                 </f:facet>
                 <h:outputText value="#{row.name}" />
                 </h:column>
                 <f:facet name="footer">
                 <rich:datascroller reRender="dtform" for="thetable" />
                 </f:facet>
                 </t:dataTable>
                 </h:form>
                 </ui:define>
                 </ui:composition>
                </div>
                
                
                


                As you suggested I used reRender="formname" instead of reRender="tablename" and it works perfectly with the a4j:commandLink, however rich:datascroller renders the links named "Select" unusable.

                The relevant backing bean code:
                 public String select(ProductType productType) {
                 System.out.println("selected producttype: " + productType.getName());
                 return null;
                 }
                
                 public void dummy() {
                 System.out.println("something");
                 }
                


                Use any datamodel or collection as the source for the table. It doesn't work with any.

                • 5. Re: Can trinidad and a4j coexist?

                  try to put <a4j:outputPanel id="dtformw" layout="block"> around the form and point with reRender to it.
                  Let me know does it change anything.

                  • 6. Re: Can trinidad and a4j coexist?
                    dajevtic

                    Hi Sergey,
                    unfortunately the result is the same?!
                    It doesn't change anything.
                    Is it possible that there is a bug in the richt:dataScroller and that the reRender is ignord oposed to other compoents where it works?!

                    • 7. Re: Can trinidad and a4j coexist?

                      let's add ajaxSingle="false" to the datascroller. Also, could you post what you have now after the changes are made

                      • 8. Re: Can trinidad and a4j coexist?
                        dajevtic

                        Hi Sergej,
                        I had already tried all those kinds of things.
                        Nothing makes the reRender property work at all.

                        Best would probably be to file a JIRA issue or can you acutally say, that any of your tries have been successful?

                        Kind regards,
                        dj

                        • 9. Re: Can trinidad and a4j coexist?

                          Sometimes, it is important to have the same environment to reproduce. If the problem is not reproducible, it is hard to solve it.

                          • 10. Re: Can trinidad and a4j coexist?
                            dajevtic

                             

                            Sometimes, it is important to have the same environment to reproduce. If the problem is not reproducible, it is hard to solve it.


                            Dear Sergey,
                            I fully agree. But have you ever been able to get links in a rerendered table to work, after datascroller has been used?
                            I haven't, no matter what environment setup.