SelectOneMenu within a dataTable

I am trying to get the value for a select menu from within a particular row of a data table based on the row selected.
<h:dataTable rows="10" width="760" cellpadding="2" headerClass="header" rowClasses="line, altline" value="#{PartListBean.searchResults}" binding="#{PartListBean.dataTable}" var="currentRow">
<h:column id="column1">
<f:facet name="header" >
<h:outputText id="outputText2" value="Part Number"/>
</f:facet>
<h:outputText id="outputText1" value="#{currentRow.partId.partNumber}"/>
</h:column>     
<h:column id="column3">
<f:facet name="header">
<h:outputText id="outputText8" value="Actions"/>
</f:facet>
<h:outputText escape="false" value=" " />
<h:selectOneMenu id="DirectionToGo" >
     <f:selectItem itemValue="" itemLabel="Choose Action"/>
     <f:selectItem itemValue="PartMaint" itemLabel="Part Maintenance"/>
     <f:selectItem itemValue="RequisitionList" itemLabel="Requisitions"/>      
</h:selectOneMenu>
<h:commandButton value="GO" action="#{PartListBean.navigate}" ></h:commandButton>
</h:column>
</h:dataTable>
I am able to get the row selected, but I can not figure out how to isolate the selectOneMenu value in my java.
Any help would be great!
thanks.

You missed the value attribute of selectOneMenu
<h:selectOneMenu id="taskType" value="#{planningBean.eventPeriodicity}">
     <f:selectItem itemValue="#{planningBean.onceValue}" itemLabel="#{appBundle.ONCE}"/>
     <f:selectItem itemValue="#{planningBean.dailyValue}" itemLabel="#{appBundle.DAILY}"/>
     <f:selectItem itemValue="#{planningBean.weeklyValue}" itemLabel="#{appBundle.WEEKLY}"/>
     <f:selectItem itemValue="#{planningBean.monthlyValue}" itemLabel="#{appBundle.MONTHLY}"/>
</h:selectOneMenu>Frederic

Similar Messages

  • Why are inputText values within a dataTable tag lost when validation fails?

    Hi, As a test, I have three fields outside of a dataTable tag and three fields inside a dataTable tag.
    I enter data into field1, field3 and all of the fields within the dataTable. Field2 is left empty and is required. I press the 'go' button which gets to the validation phase and immediately redraws the web page and says 'value is required' which is what it should do.
    What shocks me at this point is that the field values inside the datatable are lost. They are back to their original blank values.
    It like even though validation fails(the model is not updated), the datatable is redrawn using the model data which is still blank. The renderer forgets that those fields within the datatable had data typed into them.
    Is this a bug? and how do I get around it? I don't want to lose what was typed in.
    here is my example:
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <html>
    <body>
    <f:view>
    <h:form>
    <h:panelGrid columns="2">
    <h:outputText value="field1"/><h:inputText value="#{example.field1}"/>
    <h:outputText value="field2 required"/><h:inputText required="true" value="#{example.field2}"/>
    <h:outputText value="field3"/><h:inputText value="#{example.field3}"/>
    </h:panelGrid>
    <h:panelGrid columns="1">
    <h:outputText value="dataTable"/>
    <h:outputText value="---------"/>
    <h:dataTable value="#{example.lines}" var="line">
    <h:column>
    <h:inputText value="#{line.text}"/>
    <f:facet name="header">
    <h:outputText value="column1"/>
    </f:facet>
    </h:column>
    </h:dataTable>
    <h:commandButton value="go"/>
    <h:outputText value="errors"/>
    <h:outputText value="---------"/>
    <h:messages showDetail="true"/>
    </h:panelGrid>
    </h:form>
    </f:view>
    </body>
    </html>
    package test;
    import java.util.ArrayList;
    public class Example {
         private String field1;
         private String field2;
         private String field3;
         private ArrayList lines = new ArrayList();
         public Example() {
              lines.add(new Line());
              lines.add(new Line());
              lines.add(new Line());
         public String getField1() {
              return field1;
         public void setField1(String field1) {
              this.field1 = field1;
         public String getField2() {
              return field2;
         public void setField2(String field2) {
              this.field2 = field2;
         public String getField3() {
              return field3;
         public void setField3(String field3) {
              this.field3 = field3;
         public ArrayList getLines() {
              return lines;
         public void setLines(ArrayList lines) {
              this.lines = lines;
    package test;
    public class Line {
         private String text;
         public String getText() {
              return text;
         public void setText(String text) {
              this.text = text;
    <managed-bean>
    <managed-bean-name>example</managed-bean-name>
    <managed-bean-class>test.Example</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

    I posted about this bug a month ago and then again twice more (as recently as last week) and got zero responses. I piddled away so much time thinking I was crazy to believe this framework could have such a gaping hole in the fuselage that it was crazy. The more unsettling part too was the fact that the logging in the jsf code is so pathetic that you have no clue even with it on full that it's throwing your data away, they have unit tests in their code, including in-container tests, and they didn't have a test that turned this up? Hello? A project that has been going for this long should not have torture traps like this in it. Sorry for my negative post. To end on a positive note, I am looking forward to finding out about oracle's stuff. And Sun wonders why no one uses their stuff.
    Does the Oracle JSF implementation require OAS?

  • SelectOneMenu inside h:dataTable gives conversion error

    Hi guys,
    I'm enduring quite alot of misery attempting to put selectOneMenu UI components in my h:dataTable. Due to the 30000 character restriction, I can only submit my view and backing bean and DTO and the converter (even though the total characters of my files is only 26,583? [cat * | wc -c]). Perhaps you can figure out a way I can send me all my files and you'll be able to test it much easier.
    The jist of the problem is that I get a conversion error between the selectOneMenu and the backing DTO of the <h:dataTable>. After I define a converter I get a ClassCastException.
    My BIGGEST question is "Why do I even need a converter?", the selectItem(s)/options are hardcoded label/value Strings and so is the the property of the dataTable row's backing DTO!!!
    Here's the files, any assistance will be greatly appreciated.
    P.S. I'm running JDeveloper 10.1.3.3.
    Thanks.
    (All these files are in the same package so you can just put them all in a directory named "example"):
    My DTO BudgetEquipmentListVO.java:
    package example;
    import java.util.Date;
    import java.util.List;
    public class BudgetEquipmentListVO {
        private Integer rowNo = new Integer("0");               //Row number for paging thru dataTables.
        private String equipmentListId = new String("0");                        //From equipment_list table.
        private Integer equipmentCodeId = new Integer("0");         //From equipment_codes table
        private String objectCode = "0730";                     //So far, 0730,0735 are possible.
        private Integer budgetId = new Integer("0");            //fed_budget_id from fed_budget table.
        private String  description = "";
        private String  equipNo = "";                           //Alphanumeric
        private Date    dateAcquired = new Date();  
        private Integer estimatedCost = new Integer("0");       //Used for Stimulus Application
        private Integer actualCost = new Integer("0");          //Used for EOY expenditures.  Disable for stimulus application
        private String  bldgLocation = "";                      //Address where equipment is at.
        private String  approvedInd = "N";                      //Whether item's been approved or not. Y/N
        private Integer amountApproved = new Integer("0");      //Gets set on approval page.
        private StringBuffer comment = new StringBuffer(4000);  //Currently max 4000 chars
        private String  suppInstInd = "I";            //Support or Instruction item, S or I
        private Integer approvedById = new Integer("0");        //User id of approver.
        private Date    approvedDate = null;                    //Date approved
        private List<BudgetEquipmentListVO> innerList;
        public BudgetEquipmentListVO() {
        public void setObjectCode(String objectCode) {
            this.objectCode = objectCode;
        public String getObjectCode() {
            return objectCode;
        public void setBudgetId(Integer budgetId) {
            this.budgetId = budgetId;
        public Integer getBudgetId() {
            return budgetId;
        public void setDescription(String description) {
            this.description = description;
        public String getDescription() {
            return description;
        public void setEquipNo(String equipNo) {
            this.equipNo = equipNo;
        public String getEquipNo() {
            return equipNo;
        public void setDateAcquired(Date dateAcquired) {
            this.dateAcquired = dateAcquired;
        public Date getDateAcquired() {
            return dateAcquired;
        public void setEstimatedCost(Integer estimatedCost) {
            this.estimatedCost = estimatedCost;
        public Integer getEstimatedCost() {
            return estimatedCost;
        public void setActualCost(Integer actualCost) {
            this.actualCost = actualCost;
        public Integer getActualCost() {
            return actualCost;
        public void setBldgLocation(String bldgLocation) {
            this.bldgLocation = bldgLocation;
        public String getBldgLocation() {
            return bldgLocation;
        public void setApprovedInd(String approvedInd) {
            this.approvedInd = approvedInd;
        public String getApprovedInd() {
            return approvedInd;
        public void setAmountApproved(Integer amountApproved) {
            this.amountApproved = amountApproved;
        public Integer getAmountApproved() {
            return amountApproved;
        public void setComment(StringBuffer comment) {
            this.comment = comment;
        public StringBuffer getComment() {
            return comment;
        public void setSuppInstInd(String suppInstInd) {
            this.suppInstInd = suppInstInd;
        public String getSuppInstInd() {
            return suppInstInd;
        public void setApprovedById(Integer approvedBy) {
            this.approvedById = approvedBy;
        public Integer getApprovedById() {
            return approvedById;
        public void setApprovedDate(Date approvedDate) {
            this.approvedDate = approvedDate;
        public Date getApprovedDate() {
            return approvedDate;
        public void setRowNo(Integer rowNo) {
            this.rowNo = rowNo;
        public Integer getRowNo() {
            return rowNo;
        // Helpers ------------------------------------------------------------------------------------
         // Getters ------------------------------------------------------------------------------------
         public String getKey() {
             return equipmentListId;
         public BudgetEquipmentListVO getValue() {
             return this;
        // This must return true for another Foo object with same key/id.
        public boolean equals(Object other) {
            return other instanceof BudgetEquipmentListVO && equipmentListId != null && equipmentListId.equals(((BudgetEquipmentListVO) other).getEquipmentListId());
        // This must return the same hashcode for every Foo object with the same key.
        public int hashCode() {
            return equipmentListId != null ? this.getClass().hashCode() + equipmentListId.hashCode() : super.hashCode();
        // Override Object#toString() so that it returns a human readable String representation.
        // It is not required by the Converter or so, it just pleases the reading in the logs.
        public String toString() {
            return "BudgetEquipmentListVO[" + equipmentListId.toString() + ", " + equipmentCodeId.toString() + ", " + objectCode + ", " + approvedInd + ", " + suppInstInd + "]";
        public void setEquipmentListId(String equipmentListId) {
            this.equipmentListId = equipmentListId;
        public String getEquipmentListId() {
            return equipmentListId;
        public void setEquipmentCodeId(Integer equipmentCodeId) {
            this.equipmentCodeId = equipmentCodeId;
        public Integer getEquipmentCodeId() {
            return equipmentCodeId;
        public void setInnerList(List<BudgetEquipmentListVO> innerList) {
            this.innerList = innerList;
        public List<BudgetEquipmentListVO> getInnerList() {
            return innerList;
    The View, equipmentList.jspx:
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:af="http://xmlns.oracle.com/adf/faces"
              xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
      <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
                  doctype-system="http://www.w3.org/TR/html4/loose.dtd"
                  doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
      <f:loadBundle basename="myBundle" var="myBundle"/>
        <afh:html>
          <afh:head title="ARRA - Equipment List (0730, 0735)">
            <meta http-equiv="Content-Type"
                  content="text/html; charset=windows-1252"/>
            <link rel="stylesheet" type="text/css" href="/css/crud.css" />
            <script type="text/javascript" src="/js/global.js"></script>
          </afh:head>
          <afh:body>
            <h:form id="equipmentForm">
              <afh:tableLayout width="100%">
                <afh:rowLayout width="100%" halign="center">
                  <afh:cellFormat columnSpan="1" width="100%" halign="center"
                                  rowSpan="1">
                    <h:dataTable value="#{backing_equipmentScreen.dataList}"
                                 binding="#{backing_equipmentScreen.dataTable}"
                                 styleClass="dataTable" rowClasses="rowOdd,rowEven"
                                 var="dataItem" id="table" border="2"
                                 bgcolor="#C2DFFF" width="100%"
                                 rows="#{backing_equipmentScreen.numItems}">
                    <f:facet name="header">
                        <af:outputText value="#{myBundle.headerTable}"
                                       inlineStyle="font-size:small;"/>
                      </f:facet>
                        <h:column>
                            <f:facet name="header">
                                <af:outputText value="#{myBundle.headerColumnRowNumber}"
                                         inlineStyle="font-size:small;"/>
                            </f:facet>
                            <af:outputText value="#{backing_equipmentScreen.dataTable.rowIndex + 1}"
                                       inlineStyle="font-size:small;"/>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnDesc}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:outputText value="#{dataItem.description}"/>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnEquipNo}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:inputText value="#{dataItem.equipNo}"
                                           />
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnDateAcquired}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <af:selectInputDate value="#{dataItem.dateAcquired}"/>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnObjCode}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:selectOneMenu value="#{dataItem.objectCode}" binding="#{backing_equipmentScreen.objCodeMenu}">
                                <f:selectItem id="item1" itemLabel="0730" itemValue="0730"/>
                                <f:selectItem id="item2" itemLabel="0735" itemValue="0735"/>
                                <f:converter converterId="selectOneMenuConverter"/>
                              </h:selectOneMenu>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnInsSuppInd}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:selectOneMenu value="#{dataItem.suppInstInd}" binding="#{backing_equipmentScreen.suppInstMenu}">>
                                <f:selectItem id="supportitem1" itemLabel="Support" itemValue="S"/>
                                <f:selectItem id="supportitem2" itemLabel="Instruction" itemValue="I"/>
                              </h:selectOneMenu>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnEstCost}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:inputText value="#{dataItem.estimatedCost}">
                              <f:convertNumber
                                                currencySymbol="$"
                                                groupingUsed="#{true}"
                                                maxFractionDigits="0"
                                                type="currency"/>
                              </h:inputText>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnActualCost}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:inputText value="#{dataItem.actualCost}">
                              <f:convertNumber
                                                currencySymbol="$"
                                                groupingUsed="#{true}"
                                                maxFractionDigits="0"
                                                type="currency"/>
                              </h:inputText>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnBldgLoc}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:inputTextarea value="#{dataItem.bldgLocation}"/>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnApprovedInd}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:selectOneMenu value="#{dataItem.approvedInd}" binding="#{backing_equipmentScreen.yesNoMenu}">>
                                <f:selectItem id="yesnoitem1" itemLabel="Yes" itemValue="Y"/>
                                <f:selectItem id="yesnoitem2" itemLabel="No" itemValue="N"/>
                              </h:selectOneMenu>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                      <h:column>
                        <f:facet name="header">
                          <h:panelGroup>
                            <afh:rowLayout>
                              <afh:cellFormat inlineStyle="font-size:small;">
                                <h:outputText value="#{myBundle.headerColumnComments}"/>
                              </afh:cellFormat>
                            </afh:rowLayout>
                          </h:panelGroup>
                        </f:facet>
                        <h:panelGroup>
                          <afh:rowLayout>
                            <afh:cellFormat inlineStyle="font-size:small;">
                              <h:inputTextarea value="#{dataItem.comment}"/>
                            </afh:cellFormat>
                          </afh:rowLayout>
                        </h:panelGroup>
                      </h:column>
                        <f:facet name="footer">
                            <h:panelGrid columns="4">
                                <h:outputLabel for="rows" value="#{myBundle.labelRowsPage}:" />
                                <h:panelGroup>
                                    <h:inputText id="rows" value="#{backing_equipmentScreen.dataTable.rows}" styleClass="input" size="1"><f:validateLongRange minimum="1" maximum="100" /></h:inputText>
                                    <h:commandButton value="#{myBundle.buttonSet}" action="#{backing_equipmentScreen.pageFirst}" styleClass="input" />
                                </h:panelGroup>
                                <h:outputText value="#{myBundle.labelPaging}:" />
                                <h:panelGroup>
                                    <h:commandButton value="#{myBundle.buttonFirst}" action="#{backing_equipmentScreen.pageFirst}" styleClass="input" disabled="#{backing_equipmentScreen.dataTable.first == 0}" />
                                    <h:commandButton value="#{myBundle.buttonPrevious}" action="#{backing_equipmentScreen.pagePrevious}" styleClass="input" disabled="#{backing_equipmentScreen.dataTable.first == 0}" />
                                    <h:commandButton value="#{myBundle.buttonNext}" action="#{backing_equipmentScreen.pageNext}" styleClass="input" disabled="#{backing_equipmentScreen.dataTable.first + backing_equipmentScreen.dataTable.rows >= backing_equipmentScreen.dataTable.rowCount}" />
                                    <h:commandButton value="#{myBundle.buttonLast}" action="#{backing_equipmentScreen.pageLast}" styleClass="input" disabled="#{backing_equipmentScreen.dataTable.first + backing_equipmentScreen.dataTable.rows >= backing_equipmentScreen.dataTable.rowCount}" />
                                    <h:outputText value="#{myBundle.labelPage}: #{backing_equipmentScreen.currentPage} / #{backing_equipmentScreen.totalPages}" />
                                </h:panelGroup>
                                <h:outputLabel for="add" value="#{myBundle.labelAddRows}:" />
                                <h:panelGroup>
                                    <h:inputText id="add" value="#{backing_equipmentScreen.addCount}" styleClass="input" size="1"><f:validateLongRange minimum="1" maximum="100" /></h:inputText>
                            <af:commandButton action="#{backing_equipmentScreen.actionAdd}"
                                              styleClass="input"
                                              text="#{myBundle.buttonAdd}"/>
                          </h:panelGroup>
                                <h:outputText value="#{myBundle.labelActions}:" />
                                <h:panelGroup>
                                    <h:commandButton value="#{myBundle.buttonSelectAll}" action="#{backing_equipmentScreen.actionSelectAll}" rendered="#{!backing_equipmentScreen.editMode and !backing_equipmentScreen.selectAll}" styleClass="input" />
                                    <h:commandButton value="#{myBundle.buttonUnselectAll}" action="#{backing_equipmentScreen.actionSelectAll}" rendered="#{!backing_equipmentScreen.editMode and backing_equipmentScreen.selectAll}" styleClass="input" />
                                    <h:commandButton value="#{myBundle.buttonEdit}" action="#{backing_equipmentScreen.actionEdit}" rendered="#{!backing_equipmentScreen.editMode}" styleClass="input" />
                                    <h:commandButton value="#{myBundle.buttonDelete}" action="#{backing_equipmentScreen.actionDelete}" rendered="#{!backing_equipmentScreen.editMode}" styleClass="input" />
                                    <h:commandButton id="save" value="#{myBundle.buttonSave}" action="#{backing_equipmentScreen.actionSave}" rendered="#{backing_equipmentScreen.editMode}" styleClass="input" />
                                    <h:commandButton value="#{myBundle.buttonRefresh}" action="#{backing_equipmentScreen.actionRefresh}" immediate="true" styleClass="input" />
                                    <h:commandButton value="#{myBundle.buttonReset}" action="#{backing_equipmentScreen.actionReset}" immediate="true" styleClass="input" />
                                </h:panelGroup>
                            </h:panelGrid>
                        </f:facet>
                    </h:dataTable>
                    <h:panelGroup rendered="#{empty backing_equipmentScreen.dataList and !backing_equipmentScreen.message}">
                        <h:panelGroup rendered="#{!backing_equipmentScreen.searchMode}">
                            <h:outputText value="#{myBundle.textNoData}" />
                            <h:commandButton value="#{myBundle.buttonAdd}" action="#{backing_equipmentScreen.actionAdd}" styleClass="input" />
                        </h:panelGroup>
                        <h:outputText value="#{myBundle.textRefineSearch}" rendered="#{backing_equipmentScreen.searchMode}" />
                    </h:panelGroup>
                    <h:panelGroup rendered="#{backing_equipmentScreen.message}">
                        <h:outputText value="#{myBundle.textErrors}" styleClass="error" />
                        <h:messages styleClass="error" />
                    </h:panelGroup>
                  </afh:cellFormat>
                </afh:rowLayout>
              </afh:tableLayout>
            </h:form>
          </afh:body>
        </afh:html>
      </f:view>
    </jsp:root>

    Hi evryone,
    I have following piece of code
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <af:document>
    <af:messages/>
    <af:form>
    <af:selectOneChoice>
    <f:selectItem itemLabel="ABC" itemValue="ABC"/>
    <f:selectItem itemLabel="DEF" itemValue="DEF"/>
    <f:selectItem itemLabel="GHI" itemValue="GHI"/>
    <f:selectItem itemLabel="JKL" itemValue="JKL"/>
    <f:selectItem itemLabel="MNO" itemValue="MNO"/>
    </af:selectOneChoice>
    </af:form>
    </af:document>
    </f:view>
    </jsp:root>
    When I run this program , I get following compiler error:
    Error(12): Unable to convert constant to type javax.el.ValueExpression for attribute "itemLabel" of tag "selectItem".
    Error(12): Unable to convert constant to type javax.el.ValueExpression for attribute "itemValue" of tag "selectItem".
    Error(13): Unable to convert constant to type javax.el.ValueExpression for attribute "itemLabel" of tag "selectItem".
    Error(13): Unable to convert constant to type javax.el.ValueExpression for attribute "itemValue" of tag "selectItem".
    Error(14): Unable to convert constant to type javax.el.ValueExpression for attribute "itemLabel" of tag "selectItem".
    Error(14): Unable to convert constant to type javax.el.ValueExpression for attribute "itemValue" of tag "selectItem".
    Error(15): Unable to convert constant to type javax.el.ValueExpression for attribute "itemLabel" of tag "selectItem".
    Error(15): Unable to convert constant to type javax.el.ValueExpression for attribute "itemValue" of tag "selectItem".
    Error(16): Unable to convert constant to type javax.el.ValueExpression for attribute "itemLabel" of tag "selectItem".
    Error(16): Unable to convert constant to type javax.el.ValueExpression for attribute "itemValue" of tag "selectItem".
    Anyone has any ideas? Where could be problem?

  • How to use SelectOneRadio within a DataTable

    Hi,
    I have a requirement to have a radio button for each row in the datatable. It is to enable selecting one row(only one row) from the table and proceed to the next page. The table should look like
    o Name1 address1 city1 state1
    o Name2 address2 city2 state2
    o Name3 address3 city3 state3
    o Name4 address4 city4 state4
    Next>>
    The data structure I have is a collection on objects of type person.
    Class person
    String id;
    String name;
    String address;
    String city;
    String state;
    getters and setters
    I tried to use SelectOneRadio within a Column, but that didnt help. As obvious it treats each rows radio button as a seperate radio group.
    <h:datatable var="person" value="#{personList}>
    <h:column>
    <h:selectOneRadio>
    <f:selectItem itemValue="#{person.id}"/>
    </h:selectOneRadio>
    </h:column>
    <h:column>
    <h:outputText value="#{person.name}"\>
    </h:column>
    </h:datatable>
    I am new to JSF. I searched thru some JSF websites and book, but couldnt find a solution. Can someone help me solve this.
    Thanks in advance
    Rani

    Hi,
    after some time probing into this issue I think none of the many proposed sollutions really solves the underlying problem: Working around the issue becomes much to complicated for JSFs stated design goal of easing development. Certainly for such a common case scenario no workaround should be neccessary, especially given the fact that JSTL is easily able to model this without the need for workarounds!
    In my opinion JSF TagLib implementations should attempt to solve this in a coming version.
    One part of the sollution might be to make <f:selectItem> search it's parent element recursively, i.e. allow the expected container element to be the nearest direct or indirect parent that's suitable. This would allow developers to envelope a <h:dataTable> tag with a <h:selectOneRadio> element. Any <f:selectItem> element inside would therefore be part of a single choice radio button selection, regardless of them being distributed over multiple rows or columns.
    Another part of the sollution might be to allow <h:selectOneRadio> and similar tags to be substitutes for <h:column> tags inside tables. This way a complete column of radio buttons could be used to chose a single value, thereby allowing multiple columns of radio buttons to choose multiple values within the same table.
    Please forward this suggestion for enhancement in kind to the expert group working on the further development of the JSF taglibs. I guess many people besides me already use it as a classical example of complications using JSF during lectures about the tomic, and at least in this case the problem seems completely solvable.
    Kind regards,
    Sascha Baumeister
    software architect, university lecturer and former JCP spec lead JSR086

  • ActionListener not firing within panelGrid (which is within a dataTable)

    I have a page with several forms on it:
    <h:form>
    ... commandLinks here are working
    </h:form>
    <h:form>
    <h:panelGrid>
    ...the actionListener here is firing
    </h:panelGrid>
    </h:form>
    <h:form>
    ... commandLinks here are working
    </h:form>
    <h:dataTable value="#{collection}" var="item">
    <h:column>
    <h:form>
    <h:panelGrid>
    ...actionListeners here ARE NOT FIRING!
    </h:panelGrid>
    </h:form>
    </h:column>
    </h:dataTable>
    I've tried many things to get this to work. I've checked spelling at least 10 times. I've put the whole page in a single form. Nothing seems to work. The bean associated with the actionListener is not even being instantiated unless I include a value binding expression in the form somewhere, but even then the listener is still not fired.
    So, please tell me if this is a known bug, or if it should work. I'm using JSF 1.1_1.
    All the data and form fields get displayed correctly, just the actionListeners are not firing. I've tried both methods of triggering an actionListener. Neither work.
    Why doesn't anyone from Sun post here anymore?????

    Could you please copy/paste the whole jsp page?I had to abandon the previous page structure due to time constraints. But, now I am having the same problem on another page, pasted below. In this case, the contactInfoForm.populate actionListeners are not firing:
    <?xml version="1.0" ?>
    <jsp:root version="2.0"
      xmlns:jsp="http://java.sun.com/JSP/Page"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jstl/core"
      xmlns:x="http://java.sun.com/jstl/xml"
      xmlns:fmt="http://java.sun.com/jstl/fmt"
      xmlns:t="http://jakarta.apache.org/struts/tags-tiles"
      xmlns:htm="http://jsftutorials.net/htmLib">
      <f:subview id="content">
        <htm:div styleClass="heading">
          <htm:h2>
             <h:outputFormat value="#{msgs[heading]}">
                <f:param value="#{param.firstName}" />
                <f:param value="#{param.lastName}" />
             </h:outputFormat>
          </htm:h2>
        </htm:div>
        <htm:div styleClass="contentContainer">
        <h:messages/>
        <h:form>
          <h:commandLink id="backToPersons" styleClass="commandLink1" action="section.persons">
             <h:outputText value="#{msgs['persons.common.command.backToPersons']}"/>
          </h:commandLink>
        </h:form>
        <h:form style="padding-top: 10px">
          <h:commandLink id="newContactInfo" styleClass="commandLink1" action="/persons/contactInfo/newContactInfo">
             <h:outputText value="#{msgs['persons.person.contactInfo.list.command.new']}"/>
             <f:param name="personId" value="#{param.personId}"/>
             <f:param name="firstName" value="#{param.firstName}"/>
             <f:param name="lastName" value="#{param.lastName}"/>
          </h:commandLink>
        </h:form>
        <h:form>
           <h:dataTable value="#{contactInfoForm.contactInfoList}" var="contactInfo" cellpadding="5" cellspacing="0" styleClass="dataTable" headerClass="dataTableHeader" rendered="#{contactInfoForm.hasContactInfo}">
              <h:column>
                <f:facet name="header">
                   <h:outputText value="#{msgs['persons.person.contactInfo.list.header.contactInfoId']}"/>
                </f:facet>
                <htm:center><h:outputText value="#{contactInfo.contactInfoId}" styleClass="dataTableContent"/></htm:center>
              </h:column>
              <h:column>
                <f:facet name="header">
                   <h:outputText value="#{msgs['persons.person.contactInfo.list.header.description']}"/>
                </f:facet>
                <h:outputText value="#{contactInfo.description}" styleClass="dataTableContent"/>
              </h:column>
              <h:column>
                <f:facet name="header"></f:facet>
                <htm:center>
                   <h:commandLink styleClass="commandLink1" action="/persons/contactInfo/viewContactInfo" actionListener="#{contactInfoForm.populate}">
                      <f:param name="firstName" value="#{param.firstName}"/>
                      <f:param name="lastName" value="#{param.lastName}"/>
                      <f:param name="contactInfoId" value="#{contactInfo.contactInfoId}"/>
                      <h:outputText value="#{msgs['command.view']}"/>
                   </h:commandLink>
                </htm:center>
              </h:column>
              <h:column>
                <f:facet name="header"></f:facet>
                <htm:center>
                   <h:commandLink styleClass="commandLink1" action="/persons/contactInfo/editContactInfo" actionListener="#{contactInfoForm.populate}">
                      <f:param name="firstName" value="#{param.firstName}"/>
                      <f:param name="lastName" value="#{param.lastName}"/>
                      <f:param name="contactInfoId" value="#{contactInfo.contactInfoId}"/>
                      <h:outputText value="#{msgs['command.edit']}"/>
                   </h:commandLink>
                </htm:center>
              </h:column>
           </h:dataTable>
           <h:outputText value="#{msgs['persons.person.contactInfo.list.noRecords']}" styleClass="copy2" rendered="#{not contactInfoForm.hasContactInfo}"/>
        </h:form>
        </htm:div>
      </f:subview>
    </jsp:root>

  • Editable Datatable within Datatable

    Hi,
    I am trying to implement a master detail edit screen, all on one page.
    What that means, is that I have an datatable (dt1) with 4 columns, 3 of which are text fields, the fourth is a dataTable (dt2).
    Both the dataFields are linked to ArrayLists.
    dataTable dt2 has two text fields.
    When I populate the page, everything works fine, and the data stored is displayed, the master as well as the detail rows are displayed. But when I try to make any changes to the text field in dt2, they are not saved back.
    Does the JSF framework prohibit an editable dataTable being within another datatable (in the of the columns of the outter dataTable)?
    Thanks for any help on this!
    Haroon

    Nope, no limitations. Make sure the subcomponents
    in dt2 (OutputTextN) are bound properly.
    Check the value property on each.
    If all looks good and still have problems, you can
    check the jsp source to see if the value binding
    expressions are correct.
    John
    JSC QA

  • Using commandLinks and commandButtons in dataTables

    I'm trying to create a page that displays data from a database and allows you to edit individual rows by clicking on either a commandButton or a commandLink within a dataTable that then takes you to another page where you can edit that particular row of the table.
    When using a commandButton, it works perfectly for all but the last entry in the table. But when the button in the last line is clicked, nothing happens at all, it does not seem to call the action listener and it does not perform the navigation based on the action. But with all the previous buttons it calls the actionListener and navigates perfectly. Can anyone tell me why this would be? The code is as follows:
    <h:dataTable value="#{Categories.categories}" var="category" >
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.deptColumnHead}"/></f:facet>
    <h:outputText value="#{category.departmentName}"/>
    </h:column>
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.categoriesColumnHead}"/></f:facet>
    <h:outputText value="#{category.categoriesList}"/>
    </h:column>
    <h:column>
    <h:form>
    <h:inputHidden id="dept" value="#{category.departmentId}"/>
    <h:commandButton id="editButton" action="EditCat" actionListener="#{Categories.editListener}" value="{msgs.editSelectedButtonText}"/>
    </h:form>
    </h:column>
    </h:dataTable>
    When using commandLinks, only the first one works (of 4). For the other 3 the page goes into error when the link is clicked and it complains that 'document.forms._id2:3:_id10._id2:3:_id10:idcl is null or not an object'. If anyone could tell me what is wrong with my code, i would be most appreciative.
    <h:dataTable value="#{Categories.categories}" var="category" >
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.deptColumnHead}"/></f:facet>
    <h:outputText value="#{category.departmentName}"/>
    </h:column>
    <h:column>
    <f:facet name="header"><h:outputText value="#{msgs.categoriesColumnHead}"/></f:facet>
    <h:outputText value="#{category.categoriesList}"/>
    </h:column>
    <h:column>
    <h:form>
    <h:inputHidden id="dept" value="#{category.departmentId}"/>
    <h:commandLink action="EditCat" actionListener="#{Categories.editListener}">
    <h:outputText value="#{msgs.editSelectedButtonText}"/>
    </h:commandLink>
    </h:form>
    </h:column>
    </h:dataTable>

    1) I have had very odd behavior in JSF when ALL of the
    JSF elements on a page do not have an id attribute. If
    you do not assign an id then JSF will manufacture a
    unique id on the flag. Sometimes the unique id wasn't
    so unique and there were errors like you are seeing or
    just odd behavior on the form, buttons not generating
    events, or incorrect rendering, etc.
    By 'ALL' I mean output text, columns, anything that
    accepts an id attribute. Don't trust the code to
    generate an id correctly for you.Just want it known that while this may be necessary in the short-term to work around bugs, this is definitely not the intent of the EG! We don't want people getting in the habit of
    Also note that this behavior is not consistent
    sometimes it would not appear on a page unless the
    page was updated and more controls added to it.Ah, well that is a known issue; while developing a page, the Sun RI can have problems if you change a page's contents between two submissions. (It doesn't pick up that the .jsp has changed.) I'd recommend:
    - Use client-side state saving.
    - Make sure you're making a new request for a page (not re-POST-ing anything!) when the page's contents have changed.
    If you follow both of those rules, then you should generally be able to get away without explicit IDs everywhere as you actively develop your page.
    Explicit IDs are required if you're inside <c:if>; this is known and documented.
    2) try putting the hidden input control in it's own
    columnNo, that'll give you a bonus set of <td> elements, which isn't what you want.
    -- Adam Winer (EG member)

  • Dynamically validating datatable elements using javascript

    Hai, iam using jsf, and having Xml mapping to the form elements to display the data . Iam using <h:datatable> inside which iam haveing repeated elements, i need to do a javascript validation before displaying the form element present inside the <h:datatable> columns.Iam also using <j4j:idproxy> , the java script is working for 1 iteration but it is the dataof the form element is not getting overridden in the 2nd iteration, It is somethinglike this below.
    <TR id="buiCoverRowId" style="display:none;">
    <TD height="9" width="200"></f:verbatim> <h:outputText
    styleClass="outputText" id="text7"
    value="Buildings Cover"></h:outputText><f:verbatim></TD>
    <TD height="9" width="516"></f:verbatim> <h:outputText
    styleClass="outputText" id="buildCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/CoverDetail/SumInsured/Amount']}">
    </h:outputText> <f:verbatim></TD>
    </TR>
    <TR>
    <TD></f:verbatim><f:verbatim>
    <h:inputHidden id="hidBuiCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/CoverDetail/SumInsured/Amount']}">
    <j4j:idProxy id="hidBuiCoverId_" />
    </h:inputHidden>
    </f:verbatim><f:verbatim></TD>
    <TD></f:verbatim><f:verbatim>
    <h:inputHidden id="hidExBuiCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/ExcludedInd/Value']}">
    <j4j:idProxy id="hidExBuiCoverId_" />
    </h:inputHidden>
    </f:verbatim><f:verbatim></TD>
    </TR>
    <SCRIPT>
    alert("HAI");
    var buidcover = document.getElementById('hidExBuiCoverId_').title;
    var buidcoverR =document.getElementById(buidcover).value;
    alert("the value of buildcover----->"+buidcoverR);
    var buId =document.getElementById('hidBuiCoverId_').title;
    var entitybuId1 = document.getElementById(buId).value;
    entitybuIdT1 = trim(entitybuId1);
    alert("entitybuIdT1"+entitybuIdT1);
    var buExId = document.getElementById('hidExBuiCoverId_').title;
    var entitybuExId1 = document.getElementById(buExId).value;
    entitybuExIdT1 = trim(entitybuExId1);
    entitybuExIdU1 = entitybuExIdT1.toUpperCase();
    alert("entitybuExIdU1"+entitybuExIdU1);
    if(!(entitybuIdT1 == null || entitybuIdT1 == '') && ((entitybuIdT1 == "0")) && (entitybuExIdU1 == 'FALSE'))
    document.getElementById("buiCoverRowId").style.display="block";
    </SCRIPT>
    The form element is mapped to the xml. the above code is written within a datatable, iam using javascrpt within this to display the datat or not, it is working for first iteration but its not working for second iteration. Plz help me with this . Is there any way that i can use javascript so that it vvalidates the form elements even for the 2 iteration of the datattable. I am having thesame values (of the 1iteration) even during the 2 iteration. Plz help me with this asap.

    Got the solution.
    $("div.ms-acal-rootdiv div div div a").html().replace('Replace this text only.','Replaced Text');

  • UI:include (facelet) within foreach loop

    Hi I'm trying to do a ui:include of another page within a foreach loop, the path of the page to include comes out of the variable of the foreach loop, but this seems not to be working, is there a workaround?
    <c:foreach value="#{myBean.services}" var="service">
    <h:column>
         <ui:include src="/myservices/#{service.name}/serviceMenu.xhtml"/>
    </h:column>
    </c:foreach>
    thx

    THX for the reply
    I tried with the h:dataTable and I have the same problem, dynamic includes do not work within the dataTable loop, the output is ok I tried
    <h:dataTable>
    <h:column>
         <h:panelGroup rendered="#{service.normalizedName eq 'Test'}">
              <ui:include src="/secure/myservices/Test/serviceMenu.xhtml"/>
         </h:panelGroup>
    </h:column>
    </h:dataTable>
    then it is working but I have to create ab EL expression for each possible service which is not maintainable
    any ideas?

  • Default or Static Item in Layout within ListView

    I am trying to have a static item show up within the layouttemplate of my listview. Anyone can show me some examples of this? I have a lv_serviceLocations_DataBound event that fires the ListView to be visible, but I am unsure of how to take the data within
    my DataTable and have a default location be visible once the ListView appears. Here is some of my code...
    <asp:ListView ID="lvServiceLocations" runat="server" DataSourceID="sdsServiceLocations"
    DataKeyNames="user_service_location_id" InsertItemPosition="FirstItem"
    OnItemInserting="lvServiceLocations_ItemInserting"
    OnDataBound="lvServiceLocations_DataBound" >
    <LayoutTemplate>
    <table class="location-selection-table ui-widget-content"><tr>
    <th colspan="4" class="ui-widget-header">Locations</th></tr>
    <tr id="itemPlaceHolder" runat="server" />
    </table>
    </LayoutTemplate>
    <ItemTemplate>
    <tr class="location-selection-item-row">
    <td class="location-selection-actions">
    <asp:LinkButton runat="server" Text="Remove" CommandName="Delete" /></td>
    <td><%# Eval("selected_state") %></td>
    <td><%# Eval("selected_county") %></td>
    <td class="location-selection-actions"></td>
    </tr>
    </ItemTemplate>

    Hi Mosnet99,
    Thank you for posting in the MSDN forum.
    Since Visual Studio General Forum which discuss Visual Studio IDE usage, I’m afraid that it is not the correct forum for this issue. The issue seems more related to the ASP.NET Web Application,
    so I suggest you can post the issue to the
    ASP.NET forum and you will get more detail information about your issue.
    Thanks for your understanding.
    Best Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

  • How to loop through rows in datatable?

    Hi,
    I have a datatable component with a few columns bound to a database table but I have also added a new textfield column to the datatable. The purpose of this datatable is to present the user with a list of products from the database and then allow the user to enter a quantity value into the textfield for each product (ie datatable row).
    This all works fine until i need to capture the quantity values the user has entered. It seems the datatable component can only provide the current row details. However what I want to do is when the user finishes entering the quantities for all the products they click a button and then I loop through each row in the datatable from start to end and find out what quantities were entered for each product.
    I can find no documentation or threads on how to do this. It seems like a very basic concept but perhaps is not possible to achieve. Can anyone help?
    Also I entered a default value of "0" in the value expression (ie text) property of the new textfield in the datatable but this value never appears (ie the textfields are always empty). However the text property seems to work ok for normal textfield components not within a datatable. Any ideas?
    Thanks.

    thanks, I am able to iterate through the datatable rows now and get the values, however I still have one (actually two) big problem...
    1. I cannot get the textfields to be prepopulated with a value when the page first loads. I have the text property of the textfield set to a value but this makes no difference, the textfields are always blank.
    2. After a user enters values and clicks the button to calculate the page reloads and again all entered values are gone (ie the damn textfields are empty again). Is this normal behaviour for textfields within a datatable....surely not.
    So, I added some code to my prerender method to specifically populate the textfields and although it loops through each textfield only the last textfield gets populated. I cannot work this one out. Datatables should be easy to work with, but like most things Creator turns an easy job into an impossible one.
    Please help.

  • DataTable event problems

    I have created a datatable whose columns are as follows. A button, outtext, image, textinput, outtext. The problem I have is when I place focus on any textinput box the button in the first row is highlighted. This becomes a problem when I type data in the textinput box and then press enter. When I press enter the button's event handler is triggered. Has anyone seen this behavior.
    Any help is appreciated.

    Just a quick followup on my problem. I move the button to different columns within my datatable and the same problem occurs. Whenever focus is inside the datatable, that is either through a tab or by clicking the mouse anywhere inside the datatable, the button in the first row becomes highlighted and if the enter key is pressed the key press is associated with the button instead of the component that actually should have focus. Please help! Our site is supposed to go live tommorow and this is a real show stopper.
    Thanks,
    Kevin

  • Ajax Update of a rich:subTable with rich:dataTable

    Hello,
    i just want to rerender a subtable within a dataTable via ajax request.
    The concrete requirement is just to model a 1-level table tree, such that i am
    able to expand items in the superior table. I have tried different solutions.
    One is, that value.items returns an empty list on not expanded,
    other was to use the rendered attribute at the subtable and/or also
    at a wrapping columngroup.
    Another thing is, that the table obviously requests the
    ajaxKeys attribute at the dataTable, it also returned
    the correkt rows (as integer index keys within a Set),
    but the subtable is never refreshed.
    I have no more idea! Do i only have the possibility
    to update the whole table (this works fine) ?
    When do i really need the ajaxKeys attribute?
    My third question by this way is, is there a nice
    way of doing it using pure client side javascript effects?
    Hope you can help,
    Ijaja
    <rich:dataTable      value="#{bean.list}" var="value" id="table">
         <rich:column colspan="2">
              <a4j:commandLink action="#{value.switchExpanded()}" reRender="subtable">
                   <h:graphicImage id="expandimage" value="#{value.image}"/>
              </a4j:commandLink>
              <h:outputText value="Text"/>
         </rich:column>
         <rich:subTable id="subtable" value="#{value.items}" var="item">
              <rich:column>
                   <h:outputText value="#{item.label1}" />
              </rich:column>
              <rich:column>
                   <h:outputText value="#{item.label2}" />
              </rich:column>
         </rich:subTable>
    </rich:dataTable>

    Hi, thanks for your reply. I looked at the ajax code in that post.
    attrResponse should be called from my Action class (controller class in my case since am using spring)
    However, this is extremely useful if I am expecting the user to do an input for me.
    I need to figure out if a Query is updating table abc ( I plan to do it this way :
    I will get the table name from all update queries being executed (this I dont know how I will do though), and then after the successfull updation I will execute the select query for the same table) and then return the result set in the attrResponse.
    ultimately this will help in updating rows displayed in jsp based on updates done to the database without the page being refreshed. For ex, if my current Jsp is displaying my total no. of employees, which is 2 then if someone updates the table with a third employee, then the third row gets automatically updated.
    am I taking it up in the correct way ?
    Is there another way to do this ?
    Thanks for your time on this.

  • Rowspan and h:datatable

    Hi,
    I've a little problem with datatable,
    I want to make table like this
    A |________
    |________
    |________
    ___|________
    B |________
    |________
    |________
    ___|________
    How to do this table using h:datatable.
    I think, that I must use h:datatable within h:datatable, but it's difficult.
    Is there any simple way, or better to wait for JSF2.0?
    Thanks

    I've tried to get correct working nested datatable
    with commandbutton in innertable.
    To view nested table are good, but events in don't
    work correctly.UICommand elements in datatables are tricky. Keep in mind that the data should be available all the time, during all JSF phases, so that JSF knows which row was involved in the ActionEvent. A simple prove: if the managed bean which takes care of the data is set in request scope, change it to session scope. Big chance that it should work.
    Does anybody know, how to get simple walkaround in
    this problem, or it's better to use 1 table, delete
    unnecessary data or/and try to make rowspan?
    Thanks for help:)Deleting unnecessary data so that you get empty cells in the right rows is easy to implement. Just compare with the former row in a loop. If you want to create rowspans, then go for another datatable component, like I mentioned earlier. Tomahawk or RISB.

  • JSC1 bug ( LinkAction with in dataTable)

    Hi,
    I have come across a very strange behaviour, which i think is JSC bug but not sure.
    Steps to reproduce the problem/bug:
    1. Create a new project,
    2. Drag and drop output text.
    3. Drag and drop button.
    4. Drag and drop dataTable component.
    5. Drag and drop a Table from dataSources of ServerNavigator window.
    6. Select & right click on dataTable1 in ApplicationOutline window
    7. Select Bind to Database.
    8. Select the rowset and click Ok
    9. Select & right click on dataTable1 in ApplicationOutline window again.
    10. Select Table Layout, select one of the colum names on the RHS and change the component type to Link (action).
    11. Click 'Apply' and then 'Ok'
    12. Select the linkAction1 in ApplicationOutline, right click and select Edit action event handler.
    13. In event handler, replace
    return null; --- with return "Page2";
    14. with in the event handler for the button,
    add something like
    outputText1.setValue("Is this a bug??");
    15. Create a new page,-- Page2.
    16. Select Page Naviagtion in Project Navigator window.
    17. Drag and drop from Page1 to Page 2 to create a link, and name the link as Page2.
    18. Run the project.
    19. Click one of the links with in the dataTable of Page1, Page2 is displayed(so far so good).
    20. Now click the browsers back buttton of Page 2, Page 1 is displayed(still working fine)
    21. Now click the button in Page 1, instead of displaying the text "Is this a bug??", Page 2 is displayed. In background, it executes the button event handler function and ALSO linkAction event handler and hence displays Page2. This behaviour can be repeated again.
    I can't understand why linkAction event handler is executed? Why is the link action event handler fired???
    This happens only with linkAction within the dataTable, if the linkAction is outside the dataTable, it works fine as expected and displays the text "Is this a bug?".
    It also works fine if you don't use the browsers back button,
    1. Create a naviagtion link from Page2 to Page1
    2. Use that link to go to Page 1 from Page 2, DONT USE BROWSERS BACK BUTTON
    3. Click the button in Page 1, it works fine as expected and displays the text "Is this a bug?".
    Is this a known bug? If so whats the workaround?
    Or Am i going wrong some where?????????/
    I need the solution ASAP, pleaseeeeeeeeee...
    Cheers

    Running your code never show page 2 in my Firefox
    Your code in 13 returns only a String.
    12     Drop it
    13     Drop it
    17     Click page 1 and drag from linkAction1 to page 2
    Run
    Hope this solves your problem.

Maybe you are looking for

  • Home Sharing in iTunes no longer working with Lion....

    Anyone else having this problem?? I have not seen it as a topic. We have 2007 iMacs so chips do not support Air Drop. However, I would not think Air Drop would be required for home sharing in iTunes. Moving to Lion has not been a very good experience

  • Sync over Wi-Fi does not always work

    Sometimes it does, sometimes it doesn't; works very inconsistently. Often iTunes displays an error, iPhone can't be located despite the fact that it's connected to my Wi-Fi. Any way to increase the reliabilty of the sync?

  • Apple Mail - Load images for some email addresses automatically

    Is it possible in Apple Mail to put some email addresses on a white list so that the images within their emails always load? I don't want all images to load for every email I get, but I find it an annoyance to have to often load images from contacts

  • How to extract data ??

    Hi all, We have POS(Point of sales )cubes in BW business content.These cubes are getting loaded from BW data sources using an extractor FM.We have our POS data in a flat file which is coming frm a legasy system.Now using XI how we need to update data

  • Can't boot Arch for installation. USB stick issue.

    I got stuck. I tried to install arch on my dekstop, but booting Arch from USB stick freezes in same point, after running hooks. I tried with two usb sticks, new iso etc. Ubuntu was installed before without any problem from the same stick. It freezes