Extended Data Table: Action Event delivered more than one time
--------------------------------------------------------------

         Key: MYFACES-1010
         URL: http://issues.apache.org/jira/browse/MYFACES-1010
     Project: MyFaces
        Type: Bug
  Components: Tomahawk (RI Compatability)  
    Versions: 1.1.1    
 Environment: Apache Tomcat 5.5.12 or OC4j 10.1.3 DP4, Win Xp, Sun  RI 1.1.01 , 
JDK 1.5

    Reporter: Claudio Tasso


Hi,
I'm trying using Tomahawk t:dataTable and it seems to me that its behaviour is 
very different from the standard  JSF h:dataTable.
Consider a column which contains a command button and a table with two rows. 
When the user clicks on the button of the first row, two action events are 
generated!

For example, look at this very simple code:

<f:view>
   <h:form>
       <h:dataTable value="#{testBean.persons}" var="item" 
binding="#{testBean.uiData}">
           <h:column>
               <h:commandButton value="Test" 
action="#{testBean.test}"></h:commandButton>
           </h:column>
           <h:column>
               <h:outputText value="#{item.name}"></h:outputText>
           </h:column>
           <h:column>
               <h:outputText value="#{item.surname}"></h:outputText>
           </h:column>
       </h:dataTable>
             <t:dataTable value="#{testBean.persons}" var="item" 
binding="#{testBean.htmlDataTable}" preserveDataModel="false">
           <t:column>
               <h:commandButton value="Test" 
action="#{testBean.test2}"></h:commandButton>
           </t:column>
           <t:column>
               <h:outputText value="#{item.name}"></h:outputText>
           </t:column>
           <t:column>
               <h:outputText value="#{item.surname}"></h:outputText>
           </t:column>
       </t:dataTable>
   </h:form>
</f:view>

When the user clicks the "Test" button of the h:dataTable, the "testBean.test" 
method is executed just one time.
But when the user clicks the "Test" button of the t:dataTable the 
"testBean.test2" method is executed twice ( or three times if the table has 3 
rows, and so on...).

I suppose  that the problem is that the elements of  t:dataTable which belongs 
to differnt rows have the same ID, and during the processDecode phase the same 
event is broadcasted more than one time.
In fact, this is the html code which is generated by Tomahawk extended 
datatable:

<table>
<tbody id="_id0:_id8:tbody_element">
<tr>
<td><input type="submit" name="_id0:_id8:_id10" value="Test" /></td>
<td>John</td>
<td>Smith</td>
</tr>
<tr><td><input type="submit" name="_id0:_id8:_id10" value="Test" /></td>
<td>Mark</td>
<td>Greene</td>
</tr></tbody>
</table>


and this is the html code which is generated by RI h:dataTable:

<table>
<tbody>
<tr>
<td><input type="submit" name="_id0:_id1:0:_id3" value="Test" /></td>
<td>John</td>
<td>Smith</td>
</tr>
<tr>
<td><input type="submit" name="_id0:_id1:1:_id3" value="Test" /></td>
<td>Mark</td>
<td>Greene</td>
</tr>
</tbody>
</table>






-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to