Hi Hans,
Thanks for your reply,
I tried changing the tag to html library data table but still got the same
error. Also I saw the html code generated for one panel and it looks like ids
are getting incremented. Here id for anchor is
"form:ProdReqs_0:_id7ToggleCollapsed" which is having ProdReqs_0 and should get
incremented for next row. Not sure what is wrong.
Please see if u can find something incorrect.
<h:dataTable id="ProdReqs"
columnClasses="list-column-center,list-column-right,
list-column-center,list-column-right"
headerClass="list-header" rowClasses="list-row"
styleClass="list-background" value="#{prqViewBacking.productionRequests}"
var="prodReq">
<h:column>
<f:facet name="header">
<t:div
style="width:500px;background-color:#CCCCCC;align=left">
<h:outputText value="Production Request "/>
</t:div>
</f:facet>
<t:div style="width:500px;background-color:#CC00CC;align=left">
<t:commandLink immediate="true">
<h:outputText value="> - Drill Down"
rendered="#{prodReq.collapsed}"/>
<h:outputText value="v + "
rendered="#{!prodReq.collapsed}"/>
</t:commandLink>
</t:div>
<t:collapsiblePanel dir="ltr" value="#{prodReq.firstName}">
<h:inputText value="#{prodReq.firstName}"/>
<h:inputText value="#{prodReq.surName}"/>
<h:inputText value="#{prodReq.collapsed}"/>
</t:collapsiblePanel>
</h:column>
</h:dataTable>
Best Regards,
________________
Saurabh Raisinghaney
-----Original Message-----
From: Hansjörg Meuschel [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 10, 2006 4:13 PM
To: MyFaces Discussion
Subject: Re: Urgent: Collapsible Panel with data table not working
IllegalStateException: Client-id : _id3ToggleCollapsed
Hi,
the problem is the surrounding t:datatable: Children of this component
all get the same id as the component does not create new objects for
each iteration.
-> I recommend switching to the h:datatable or writing your own component!
Greets, Hans
Saurabh Rasinghaney wrote:
> Hi All,
>
>
>
> We are facing a problem (java.lang.IllegalStateException: Client-id :
> _id3ToggleCollapsed is duplicated in the faces tree.) with Collapsible
> Panel, when we are using Collapsible inside a data table. When we
> display one row it shows one panel but when we display multiple rows
> it gives error (attached below).
>
>
>
> I am not sure if we can do this or not. The code and exception trace
> is attached below.
>
>
>
> Any suggestions are welcome. Thanks in advance for your help.
>
>
>
> Thanks,
>
> Saurabh
>
>
>
>
>
>
>
>
>
> <t:dataTable id="test_dt" var="prodReq"
> value="#{prqViewBacking.productionRequests}" preserveDataModel="false"
>
> styleClass="scrollerTable"
>
> headerClass="standardTable_Header"
>
> footerClass="standardTable_Header"
>
> rowClasses="standardTable_Row1,standardTable_Row2"
>
>
> columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
>
> >
>
>
>
> <h:column>
>
> <f:facet name="header">
>
> <t:div
> style="width:500px;background-color:#CCCCCC;align=left">
>
> <h:outputText value="Production Request "/>
>
> </t:div>
>
> </f:facet>
>
>
>
> <t:collapsiblePanel dir="ltr"
> collapsed="#{prodReq.collapsed}">
>
> <h:panelGrid>
>
> <h:inputText value="#{prodReq.firstName}"/>
>
> <h:inputText value="#{prodReq.surName}"/>
>
> <h:inputText value="#{prodReq.collapsed}"/>
>
> </h:panelGrid>
>
> </t:collapsiblePanel>
>
> </h:column>
>
>
>
>
>
>
>
>
>
> import java.util.ArrayList;
>
>
>
> /**
>
> *
>
> */
>
>
>
> public class PrqViewBacking implements java.io.Serializable {
>
>
>
> //private boolean _collapsed=true;
>
> private ArrayList<ProductionRequest> _productionRequests;
>
>
>
> public PrqViewBacking() {
>
> ArrayList<ProductionRequest> productionRequests = new
> ArrayList<ProductionRequest>();
>
> //test data
>
> productionRequests.add(new
> ProductionRequest("A","B","12/12/2006"));
>
> productionRequests.add(new
> ProductionRequest("c","d","12/12/2006"));
>
> //productionRequests.add(new
> ProductionRequest("e","f","12/12/2006"));
>
> //productionRequests.add(new
> ProductionRequest("g","h","12/12/2006"));
>
> this.setProductionRequests(productionRequests);
>
> }
>
>
>
>
>
>
>
> public ArrayList getProductionRequests() {
>
> System.out.println("In get prod req" +
> _productionRequests);
>
> return _productionRequests;
>
> }
>
>
>
> public ArrayList productionRequests() {
>
>
> System.out.println(_productionRequests);
>
> return _productionRequests;
>
> }
>
>
>
> public void setProductionRequests(ArrayList
> productionRequests) {
>
> _productionRequests = productionRequests;
>
> }
>
> }
>
>
>
>
>
>
>
> public class ProductionRequest implements java.io.Serializable {
>
>
>
> private String _firstName;
>
> private String _surName;
>
> private String _birthDate;
>
>
>
> private static Integer id=0;
>
>
>
> private boolean _collapsed=true;
>
>
>
> public static String getId() {
>
> return "_" + (++id).toString();
>
> }
>
>
>
>
>
> public ProductionRequest() {
>
> //Do Nothing
>
> }
>
>
>
> public ProductionRequest(String firstName, String
> surName, String birthDate) {
>
> setFirstName(firstName);
>
> setSurName(surName);
>
> setBirthDate(birthDate);
>
> }
>
>
>
> public boolean collapsed() {
>
> return _collapsed;
>
> }
>
>
>
> public boolean isCollapsed() {
>
> return _collapsed;
>
> }
>
>
>
> public void setCollapsed(boolean collapsed) {
>
> _collapsed = collapsed;
>
> }
>
>
>
> public boolean getCollapsed() {
>
> return _collapsed;
>
> }
>
>
>
> public String getBirthDate() {
>
> return _birthDate;
>
> }
>
>
>
> public void setBirthDate(String birthDate) {
>
> this._birthDate = birthDate;
>
> }
>
>
>
> public String getFirstName() {
>
> return _firstName;
>
> }
>
>
>
> public void setFirstName(String firstName) {
>
> this._firstName = firstName;
>
> }
>
>
>
> public String getSurName() {
>
> return _surName;
>
> }
>
>
>
> public void setSurName(String surName) {
>
> this._surName = surName;
>
> }
>
>
>
>
>
> }
>
>
>
>
>
> 14:48:24,390 ERROR [[jsp]] Servlet.service() for servlet jsp threw
> exception
>
> java.lang.IllegalStateException: Client-id : _id3ToggleCollapsed is
> duplicated in the faces tree.
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:241)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:251)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:251)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)
>
> at
> org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:204)
>
> at
> org.apache.myfaces.taglib.core.ViewTag.doAfterBody(ViewTag.java:139)
>
> at
> org.apache.jsp.app.PrqView_jsp._jspx_meth_f_view_0(org.apache.jsp.app.PrqView_jsp:140)
>
> at
> org.apache.jsp.app.PrqView_jsp._jspService(org.apache.jsp.app.PrqView_jsp:100)
>
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
>
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
>
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>
> at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
>
> at
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
>
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
>
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at
> org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>
> at
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
>
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
>
> at
> org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
>
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
>
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>
> at
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
>
> at java.lang.Thread.run(Thread.java:595)
>
>
>
>
>
>
>
> Best Regards,
>
> ________________
>
> *Saurabh Raisinghaney *
>
>
>
--
Mit freundlichen Grüßen,
------------------------------
Hansjörg Meuschel
Martin-Treu-Str. 40
90403 Nürnberg
Tel. +49 (0)911 274 278 1
mobil: +49 (1)60 725 3479
mail: [EMAIL PROTECTED]
http://www.meuschel.net