myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jakob Korherr (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-2744) UIData.getClientId() should not append rowIndex, instead use UIData.getContainerClientId()
Date Wed, 07 Jul 2010 10:15:49 GMT

    [ https://issues.apache.org/jira/browse/MYFACES-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885910#action_12885910
] 

Jakob Korherr commented on MYFACES-2744:
----------------------------------------

The visitTree() stuff is no problem, because we set the row index to -1 when visiting the
UIData, thus the client id never contained a row index at that time.

Do the Mojarra guys also change this behavior? Because I will have to change some things on
tomahawk too and if they don't, tomahawk won't work with Mojarra...

> UIData.getClientId() should not append rowIndex, instead use UIData.getContainerClientId()
> ------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-2744
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2744
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.0.0
>            Reporter: Leonardo Uribe
>            Assignee: Jakob Korherr
>             Fix For: 2.0.1-SNAPSHOT
>
>
> from: [jsr-314-open] Ajax inside a DataTable
> Cagatay Civici
> I've faced with an issue in our app I'd like to share when trying to update the datatable
itself from a command element located inside a column. Case is to select a row, execute logic
and update the datatable. Basic code:
> <h:dataTable id="cars" var="car" value="#{tableBean.carsSmall}">
> <h:column>
> <f:facet name="header">
> Model
> </f:facet>
> <h:outputText value="#{car.model}" />
> </h:column>
> <h:column>
> <f:facet name="header">
> Action
> </f:facet>
> <h:commandButton value="Some Action" actionListener="#{tableBean.handleRowAction(car)}">
> <f:ajax render="cars" />
> </h:commandButton>
> </h:column>
> </h:dataTable>
> As datatable has a rowIndex >= 0 during rendering of commandButton f:ajax defines
the component id to render as cars:{rowIndex} where I should expect "cars" only. This is due
to UIData.getClientId implementation as UIData
> adds rowIndex for unique row ids. This causes an issue with a nested f:ajax case.
> Martin Marinschek
> We should never include the row-index in the client-id of the table
> itself. For this, we need to revise the client-id generation
> algorithm.
> Without actually having tried it, I think that it is easy to do so, as
> we have a UIComponentBase.getContainerClientId() to create the
> client-id of the children - when this method is called, we append the
> row-index, if getClientId() itself is called, we donĀ“t. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message