You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by bansi <ma...@yahoo.com> on 2007/04/27 19:32:38 UTC

Populate fields based on radio button row selection in dataTable using AJAX4JSF

I got thru first hassle of 
"Select only one radio button row per dataTable " using Tomahawk component
version 1.1.5 with forceId="true" forceIdIndex="false" as attributes to
t:selectOneRadio

Now based on the selected radio button row i wanna populate other fields in
JSF page

Please note my <h:dataTable> returns a List of Array of Objects as shown
below

<h:dataTable id="deviceDetailTable" styleClass="list" rowClasses="odd,even" 
value="#{deviceDetailBean.tableRows}" var="vartableRow" 
width="80%">

------------------------
Backing Bean (DeviceDetailBean.java)
----------------------------
private List tableRows;
private DeviceDetail[] tableRow;

public DeviceDetailBean(){
tableRows = new ArrayList(10);
tableRows.add(new
DeviceDetail("10","0a0020b8a733","Intranet","130.42.5.25","nams.dr.ca.boeing.com","A"));
tableRows.add(new
DeviceDetail("20","0a0020b8a733","Intranet","130.42.5.25","nams.ns.cs.boeing.com","CNAME"));
tableRows.add(new
DeviceDetail("30","0a0020b8a733","Intranet","130.42.5.25","altfantasy.ns.cs.boeing.com","A"));

tableRow = (DeviceDetail[]) tableRows.toArray(new
DeviceDetail[tableRows.size()]);

}


public DeviceDetail[] getTableRow() {
return tableRow;
}


public List getTableRows() {
return tableRows;
}


public void setTableRow(DeviceDetail[] tableRow) {
this.tableRow = tableRow;
}


public void setTableRows(List tableRows) {
this.tableRows = tableRows;
}

Here is my Select only one radio button row per dataTable & other columns
inside dataTable
<h:column id="column1">

<t:selectOneRadio id="radio1" value="#{deviceDetailBean.deviceDetail.id}"
forceId="true" forceIdIndex="false"> 
<f:selectItem itemLabel="" itemValue="#{vartableRow.id}" />
<a4j:support event="onclick" reRender="selectors" />
</t:selectOneRadio>


</h:column>


<h:column>
<f:facet name="header"><h:outputText value="MAC"/></f:facet>
<h:outputText id="mac" value="#{vartableRow.mac}" /> 
</h:column> 


As you see i am using Ajax4JSF to reRender other component based on selected
radio button
<h:panelGrid width="100%" id="selectors" border="1" columns="2">
<h:outputText value="Selected row: " />
<h:outputText value="#{deviceDetailBean.deviceDetail.id}" />
</h:panelGrid>

So i am able to print "id" value of the selected radio button as it has
ajax4jsf event on it. But how do i print other values of the object. For
example the following results in error
<h:outputText value="#{deviceDetailBean.deviceDetail.mac)}" />
<h:outputText value="#{deviceDetailBean.deviceDetail.namespace)}" />

Any pointers/suggestions on how to print these values will be highly
appreciated

Regards
Bansi 
-- 
View this message in context: http://www.nabble.com/Populate-fields-based-on-radio-button-row-selection-in-dataTable-using-AJAX4JSF-tf3658911.html#a10223342
Sent from the MyFaces - Users mailing list archive at Nabble.com.