Single-row refresh in ADF tables, with PPR

Hello everybody. I have an application in JDeveloper 11gR2 environment.
Here are my requirements:
1. I have a table, each cell is an input text;
2. Some cell must be rendered differently depending on a specific key-field (for example, input or output text)
3. Any manual change in the key-field must result in a re-rendering of the interested row, not the entire table.
I addressed req 2 using an af:switcher which renders either a facet or another, evaluating the key-field.
About req 3, I tried to set auto-submit to true on key-field and then specifying partialTriggers="key-field-id" in the column component including the switcher.
It works, with 2 issues:
a) the main one: it refreshes the entire table (which simply disappear/reappears when I tab out of the key-field);
b) the second one: I'd prefer not to use the auto-submit 'cause I don't want to submit anything, yet: I just want to change rendering/values of other cells.
Any idea?
Thanks a lot,
Emanuele

Hi,
I addressed req 2 using an af:switcher which renders either a facet or another, evaluating the key-field.
I would have used an af:inputText field and set the readOnly property to true for the read only fields. This can be done through EL
About req 3, I tried to set auto-submit to true on key-field and then specifying partialTriggers="key-field-id" in the column component including the switcher.
It works, with 2 issues:
You cannot just refresh a single row. The table is stamped at rendering, which means individual rows are not represented by their own object
Frank

Similar Messages

  • How to differentiate a row in a ADF table in Oracle 11g

    Hi
    How to differentiage the each row in a ADF table with the back ground colour? I tried with RowBandingInterval option, but it didn't work out?
    Thanks

    Hi,
    setting row banding to 1 (the default) works for me on FF and IE 7
    Frank

  • Adf Table with selection as set to NONE

    Hi,
    I having a scenario as explained below:
    I am populating records in to the adf Table
    After that I am using checkbox for selecting multiple records in the table and delete them.
    So I set selection property to None for the table. Because I want user to edit only that record which is checked.
    My multiple delete is working fine.
    Now if i selected one checkbox and and click on edit(which I have placed in the panal collection toolbar) it should show me the record in the which I have selected by check box. But it is showing me the first row.
    Can anybody help me to set the current row of the adf table manually which is having selection property as none. so that I can populate in popup.
    If some other way is available please explain.
    I am using jdeveloper 11.1.2.1
    Thanks,
    Sandeep.

    I don't see why you can't set selection property to "single"? (and don't forget to restore table SelectionListener property - if deleted)
    This will set current row when you click on it.
    If you programmatically iterate through RowSet to find rows with selected checkbox, this will work regardless of value in "selection" property.
    Dario
    Edited by: kdario on Nov 7, 2012 5:20 AM
    Edited by: kdario on Nov 7, 2012 5:22 AM

  • Row selection in adf table issue after commit or rollback

    Using jdev 11g (11.1.1.62)
    I have a adf table with multi select enabled. There is a child table bounded at BC4J level via a VL
    On the rowSelectionListener I attached a bean method. This bean method bascially finds the selected row from UI and then based on it query the child vo again and then finally refreshes the child table.
    This works fine as expected.
    However, what happens is when the Cancel button is called on UI which is bound to a rollback action in the AMImpl then the UI refreshes. And the master table still shows the previously selected row but the child VO shows the rows of the first master VO row rather the selected one.
    How to fix this? Further as old row is already selected in the master table so reclicking on the same row does nothing,

    just to update after the rollback is called in the cancel button i wrote following code which does not change the row focus to the first row
    DCBindingContainer bc =
    (DCBindingContainer)BindingUtils.getBindingContext().getCurrentBindingsEntry();
    DCIteratorBinding profItr =
    bc.findIteratorBinding("ProfileSearchInstIterator");
    Row cRow = profItr.getRowAtRangeIndex(0);
    if(cRow != null){
    System.out.println("Current row is not null so fixed ");
    profItr.setCurrentRowIndexInRange(0);
    RowKeySetImpl rks = new RowKeySetImpl();
    ArrayList keyList = new ArrayList();
    keyList.add(cRow.getKey());
    rks.add(keyList);
    profileTable.setSelectedRowKeys(rks);
    AdfFacesContext.getCurrentInstance().addPartialTarget(profileTable);
    }

  • How to bind ADF table with a collection of elements using backing bean.

    Hi Experts,
    My JDev version is 11.1.1.6.0.
    I need to bind ADF table with a collection of elements using backing bean.
    My backing bean consists of 6 lists of strings, where each list represents a column of table. How can I populate the entries of table with these lists.
    Thanks
    Gopi

    Hi,
    Create an object representing the row (setter/getter). Then have a list of these objects. Drag and drop the table and point its value to the list and the type to the row object
    Frank

  • ADF Table with CheckBox - Select/deselect issue

    I have seen couple of threads and blogs for ADF table with check box . but none of them exactly matching with my requirement . My Database table does not have any field for check box .
    Here is my DB Table
    tableA_
    A_Id
    A_Name
    tableB*
    B_Id
    Requirements :*
    1. Display the above tables data with Checkbox . ( if A_Id = B_Id then the checkbox will be checked , else unchecked ) .
    2. Select / deselect the check box and save the data . Saving the data , will update only tableB . i,e when a new check box is selected then A_Id value will be inserted to tableB . Similarly , deselecting a checked in data will remove the entry from tableB.
    Development :
    1. Created a VO where tableB has marked as updateable .
    2. Created a transient Boolean variable for checkBox . and modified the getter method of checkbox for returning true/false based on the below condition in the ViewRowImpl Class .
    if ( A_Id = B_Id )
    return true;
    else false ;
    3. I have not modified the setter method .
    Using the above concept i can view the data with selected checkbox . but the problem is to save the data . because , when I select a checkbox the above coding in the getter method will return false .
    Therefore , though i am selecting the checkbox but value of the checkbox has been set as false .
    While saving the Data , I am iterating through the VOIterator and observed that a newly selected checkbox value is false . and realized its because of the getter method condition .
    Can you please suggest how can I overcome this issue or shall I need to take any other approach ?
    Jdev version 11.1.1.5
    Regards,
    Amitava
    Edited by: Amitava on Mar 17, 2012 3:48 PM

    You need to go through the ADF page life cycle concepts. In simple words the boolean value in the model is not set while in valueChangeListener. Try adding valueChangeEvent.getComponent().processUpdates(FacesContext.getCurrentInstance()); on top in your listener method and see the effect.
    Reference:
    http://docs.oracle.com/cd/E15051_01/web.1111/b31974/adf_lifecycle.htm

  • How to set text and background color of current row in a adf table?

    Hi,
    In jdev 11.1.2.3,
    How to set text fond and background color of current row in a adf table?
    I tried to set Background color in table property, but that is not what i want.
    Thanks.

    Hi,
    We almost had the same requirement, but we just needed to color a specific column.
    Here goes the solution to that, you might do the same for your row highlighting
    Changes are required in jsff and one method to be added in backing bean
    1. JSFF :
    <af:column headerText="Amount"
                     id="c4" width="100"
                     inlineStyle="#{backingBeanScope.BackingBean.cellColor}">2. Backing Bean
    //searchResultTableVO is Table's VO
    public String getCellColor() {
          FacesContext ctx = FacesContext.getCurrentInstance();
          ExpressionFactory ef = ctx.getApplication().getExpressionFactory();
          ValueExpression ve = ef.createValueExpression(ctx.getELContext(), "#{row}", FacesCtrlHierNodeBinding.class);
          FacesCtrlHierNodeBinding node = (FacesCtrlHierNodeBinding)ve.getValue(ctx.getELContext());
          Row row = node.getRow();
        if(row.equals(searchResultTableVO.getCurrentRow())){
    //You can add your inline style for font-style too
          return "background-color:Red;";
             return null;
      }Hope this is helpful :)
    Regards,
    Neha..

  • Temparally remove rows from a ADF table by action event of a jsf page.

    Hello Developers,
    I needed to temporally remove rows of a ADF table when execute action event of corresponding page.
    So in this case my task can describe by following steps,
    (1). I created a ADF table using <af:table> on a jsf page.
    (2). The data populated using a VO.
    (3). Several radio buttons added to the page for temporally remove rows from the table.
    This means one radio button check, it responsible to temporally remove rows which contain empty cell values of a identified column.
    If I check another radio button it should temporally remove identified data included rows but above removed (empty cell included rows) rows should appear in this event
    My ultimate target is temporally remove rows of a table & re call again removed rows another event without again & again query from BC.
    Pleas advice me to archive this task very sealy?
    (Are there have a way to do this using EL or coding in Manage bean ?)
    Thanks in advance..!

    Hi,
    the DCIterator gives you an option to iterate over the fetched rows (the ones you see in the table). You can try call removeAndRetain() on these rows. This will not remove or delete rows but allows you to insert these rows back to the collection.
    JavaDocs:
    * Removes the row from the collection and then retain it for insertion
    * into another location.
    * <p>
    * This method differs from <code>{@link #remove()}</code> in that
    * it just removes the row from the collection. It does not
    * remove the underlying Entity row(s) or database row(s).
    * <p>
    * This method also differs from <code>{@link #removeFromCollection()}</code>
    * in that after the row is removed from the collection, it can be inserted
    * back into the collection at another location.
    void removeAndRetain();
    Frank

  • Issue in retrieving all the records from ADF Table with multiple row

    Hi,
    As per my requirement, I need to fill the table with multi selected LOV values and when user clicks on commit, I need to save them to database.
    I am using ADF 11g, Multi select table. Using the below ADD method, I am able to add the records but if user clicks on cancel, I need to remove those from view and clear the table as well.
    But the Issue I am facing is, in my cancel method, always I am getting half of the records. Lets assume table contains 100 records but in my cancel method, I am getting only 50 records.
    Please let me know what is the issue in my source code.
    ADD Method:
    public void insertRecInCMProcessParamVal(String commType, String processType, Number seqNumber){       
    try{
    Row row = this.getCmProcessParamValueView1().createRow();
    row.setAttribute("ParamValue7", commType);
    row.setAttribute("ProcessType", processType);
    row.setAttribute("CreationDate", new Date());
    row.setAttribute("CreatedBy", uid);
    row.setAttribute("ParamValueSeqNum", seqNumber);
    row.setAttribute("ProcessedFlag", "N");
    this.getCmProcessParamValueView1().insertRow(row);
    }catch(Exception e){           
    e.printStackTrace();
    Table Code:
    <af:table value="#{bindings.CmProcessParamValueView11.collectionModel}"
    var="row"
    rows="#{bindings.CmProcessParamValueView11.rangeSize}"
    emptyText="#{bindings.CmProcessParamValueView11.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.CmProcessParamValueView11.rangeSize}"
    rowBandingInterval="1"
    selectedRowKeys="#{bindings.CmProcessParamValueView11.collectionModel.selectedRow}"
    selectionListener="#{bindings.CmProcessParamValueView11.collectionModel.makeCurrent}"
    rowSelection="multiple"
    binding="#{backingBeanScope.backing_app_RunCalcPage.t1}"
    id="t1" width="100%" inlineStyle="height:100px;" >
    <af:column sortProperty="ParamValue6"
    sortable="true"
    headerText="#{bindings.CmProcessParamValueView11.hints.ParamValue6.label}"
    id="c1" visible="false">
    <af:inputText value="#{row.bindings.ParamValue6.inputValue}"
    label="#{bindings.CmProcessParamValueView11.hints.ParamValue6.label}"
    required="#{bindings.CmProcessParamValueView11.hints.ParamValue6.mandatory}"
    columns="#{bindings.CmProcessParamValueView11.hints.ParamValue6.displayWidth}"
    maximumLength="#{bindings.CmProcessParamValueView11.hints.ParamValue6.precision}"
    shortDesc="#{bindings.CmProcessParamValueView11.hints.ParamValue6.tooltip}"
    id="it3">
    <f:validator binding="#{row.bindings.ParamValue6.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ParamValue7"
    sortable="true"
    headerText="Comm Type"
    id="c2">
    <af:inputText value="#{row.bindings.ParamValue7.inputValue}"
    label="#{bindings.CmProcessParamValueView11.hints.ParamValue7.label}"
    required="#{bindings.CmProcessParamValueView11.hints.ParamValue7.mandatory}"
    columns="#{bindings.CmProcessParamValueView11.hints.ParamValue7.displayWidth}"
    maximumLength="#{bindings.CmProcessParamValueView11.hints.ParamValue7.precision}"
    shortDesc="#{bindings.CmProcessParamValueView11.hints.ParamValue7.tooltip}"
    id="it4">
    <f:validator binding="#{row.bindings.ParamValue7.validator}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ParamValue8"
    sortable="true"
    headerText="#{bindings.CmProcessParamValueView11.hints.ParamValue8.label}"
    id="c3" visible="false">
    <af:inputText value="#{row.bindings.ParamValue8.inputValue}"
    label="#{bindings.CmProcessParamValueView11.hints.ParamValue8.label}"
    required="#{bindings.CmProcessParamValueView11.hints.ParamValue8.mandatory}"
    columns="#{bindings.CmProcessParamValueView11.hints.ParamValue8.displayWidth}"
    maximumLength="#{bindings.CmProcessParamValueView11.hints.ParamValue8.precision}"
    shortDesc="#{bindings.CmProcessParamValueView11.hints.ParamValue8.tooltip}"
    id="it2">
    <f:validator binding="#{row.bindings.ParamValue8.validator}"/>
    </af:inputText>
    </af:column>
    </af:table>
    Backing Bean Code:
    DCBindingContainer dcBindings=(DCBindingContainer)getBindings();
    DCIteratorBinding dcIterator=dcBindings.findIteratorBinding("CmProcessParamValueView1Iterator");
    RowSetIterator rs = dcIterator.getRowSetIterator();
    System.out.println("In Cancel Row Count is : "+ rs.getRowCount());
    if (rs.getRowCount() > 0) {
    Row row = rs.first();
    row.refresh(Row.REFRESH_UNDO_CHANGES);
    row.remove();
    while (rs.hasNext()) {
    int count = rs.getRowCount();
    System.out.println("Count is : "+ count);
    Row row = rs.next();
    System.out.println("Row === "+ row);
    if(row != null){                   
    row.refresh(Row.REFRESH_UNDO_CHANGES);
    row.remove();
    Thanks.

    Issue resolved.
    remove selectionListener and selectedRowKeys....
    code to get all the selectedRows.
    RowSetIterator rs = dcIterator.getRowSetIterator();
    RowKeySet rks = this.t1.getSelectedRowKeys();
    Iterator rksIter = rks.iterator();
    while (rksIter.hasNext()) {
    List l = (List) rksIter.next();
    Key key = (Key)l.get(0);
    Row row = rs.getRow(key);
    Thanks.

  • Multiple row selection in ADF Table using addition column with checkbox

    I am using ADF table(Jdeveloper11g) and i want to selecte multiple rows it may be more than one OR all rows.
    For that i added one Column to the table with Header Delete and checkbox
    <af:table....
    <af:column sortProperty="Delete" headerText="Delete" width="100"
    sortable="false">
    <af:selectBooleanCheckbox label="#{row.favoriteId}"
    valueChangeListener="#{Mybean.onCheck}"
    id="checkbox" autoSubmit="true">
    </af:selectBooleanCheckbox>
    </af:column>
    </af:table>
    backing bean:Here i added code to get Value of one column with id favoriteId and use an arrayList(listForDelete) to monitor the state of the checkboxes
    public void onCheck(ValueChangeEvent valueChangeEvent) {
    BindingContainer bindings = getBindings();
    DCBindingContainer dcBindings =
    (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding iterBind =
    (DCIteratorBinding)bindings.get("getUserFavoritesByUserIDIterator");
    if (iterBind != null && iterBind.getCurrentRow() != null) {
    RichSelectBooleanCheckbox ch = (RichSelectBooleanCheckbox)valueChangeEvent.getSource();
    if (!ch.isSelected()) {
    Long issueId = (Long)iterBind.getCurrentRow().getAttribute("favoriteId");
    listForDelete.add(issueId);
    else
    Long issueId = (Long)iterBind.getCurrentRow().getAttribute("favoriteId");
    listForDelete.remove(issueId);
    Problem is that when i select single row checkBox, onCheck() method of backing bean gets called multiple times(equals to the number of rows)
    I think this is beacuse of <af:selectBooleanCheckbox id is same that is "checkbox" but i am not sure.Even i tried to assign some unique id but no any success in assigning Id with value Expression.
    I also find related post
    Re: ADF Table Multiple row selection by Managed Bean
    but that is related to Select All rows or Deselect all rows from table.
    From the simillar post i follow the steps given by Frank.but problem with below step
    ->have an af:clientAttribute assigned to the checkbox with the following EL #{row.key} ,here I added <af:clientAttribute name="#{row.key}"></af:clientAttribute> and i am getting error
    Error(64,37):  Static attribute must be a String literal, its illegal to specify an expression.
    Please let me know if any one had already implemented same test case.
    Thanks for all help
    Jaydeep
    Edited by: JaydeepJ on Aug 7, 2009 4:42 AM

    just to update after the rollback is called in the cancel button i wrote following code which does not change the row focus to the first row
    DCBindingContainer bc =
    (DCBindingContainer)BindingUtils.getBindingContext().getCurrentBindingsEntry();
    DCIteratorBinding profItr =
    bc.findIteratorBinding("ProfileSearchInstIterator");
    Row cRow = profItr.getRowAtRangeIndex(0);
    if(cRow != null){
    System.out.println("Current row is not null so fixed ");
    profItr.setCurrentRowIndexInRange(0);
    RowKeySetImpl rks = new RowKeySetImpl();
    ArrayList keyList = new ArrayList();
    keyList.add(cRow.getKey());
    rks.add(keyList);
    profileTable.setSelectedRowKeys(rks);
    AdfFacesContext.getCurrentInstance().addPartialTarget(profileTable);
    }

  • Problems with refreshing a adf table

    Hi,
    i am using jdeveloper 11 with the new adf framework.
    I use a table which i bind to an arraylist. works fine. the table shows the data from the list.
    at sometime i change the backing arraylist but the table show (only in the section i saw on the screen) the old data, when i scroll down the new data is shown.
    so i know the arraylist holds the new data and the binding is ok but the refresh of the table doesnt work in the section i see....
    hope you understand my problem
    hannes

    Hi,
    As far as I understand , you are not clearing the previous or old data. This results in your table showing the new data towards the end.
    If you are using something like this : List tableRows = new ArrayList(); to populate the data in the table , ensure that you clear this list everytime you method runs
    You can do this by : tableRows.clear()
    HTH
    -Shishir

  • ADF Table with check box on each row  - First time selection gets unchecked

    Hi,
        The ADF Table has a check box in each, whenever a select box is clicked for the first time , it gets unselected automatically.
    Also if I select a row / click on a row and then select the check box, it is properly getting selected. I see there is some kind of autosubmit happens. Is there a way to handle this scenerio?
    Regards,
    Dhamo

    I had this same issue happen in 11.1.1.6.x  This is a bug involving an autosubmit when the checkbox is selected.
    After migrating to 11.1.1.7.0 on J Developer and Weblogic, the problem was fixed.
    One thing to check is to make sure you are using the jars from ADF 11.1.1.7.0.
    Hope that helps

  • Adf table with detail stamp , not able to close the detail stamp

    Hi
    i'm using 11g adf jdeveloper.
    I'm using adf table to display records of XXXVO.In table i have used detail stamp, in which i have drag XXXVO read-only form and used a ADD button which call a pop-up with createInsert of the XXXVO form with submit button.In pop i have used a drop downlist of other YYYVO. I have used another button Edit which call the same pop-up, using show pop-up.
    Issue is when i run the application i can open the detail stamp and close but i couldn't get the selected record on the table in edit mode pop up. if i give partial trigger in pop-up of table id . den i'm getting the selected record in edit pop up. but detail stamp is not working .
    Here is the code .......
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1">
    <af:messages id="m1"/>
    <af:form id="f1">
    <af:pageTemplate viewId="/XBBaseTemplate.jspx"
    value="#{bindings.pageTemplateBinding}" id="pt1">
    <f:facet name="body">
    <af:panelBox text="AMC Charges" id="pb1">
    <f:facet name="toolbar"/>
    <af:panelGroupLayout layout="scroll" id="pgl1">
    <af:panelCollection id="pc1"
    inlineStyle="width:1105px; height:336px;">
    <f:facet name="menus">
    <af:menu text="Export Excel" id="m2">
    <af:commandMenuItem text="Excel" id="cmi1">
    <af:exportCollectionActionListener exportedId="resId1"
    type="excelHTML"/>
    </af:commandMenuItem>
    </af:menu>
    </f:facet>
    <f:facet name="toolbar">
    <af:toolbar id="t1">
    <af:commandToolbarButton id="ctb1"
    icon="/Images/browse.gif"
    shortDesc="Search"
    partialTriggers="resId1"
    disabled="#{UsapProgramPrivilege.query}">
    <af:showPopupBehavior popupId=":::p2"/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb_add"
    icon="/Images/addsymbol.png"
    shortDesc="Add"
    action="#{MasterManagedBean.createRecord}"
    useWindow="true"
    windowModalityType="applicationModal"
    windowHeight="300"
    windowWidth="300"
    disabled="#{UsapProgramPrivilege.insert}"/>
    <af:commandToolbarButton
    id="ctb2"
    partialTriggers="resId1"
    icon="/Images/update_ena.png">
    <af:showPopupBehavior popupId=":::p_edit"/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb_delete"
    icon="/Images/delete_ena.png"
    shortDesc="Delete"
    partialTriggers="resId1"
    actionListener="#{bindings.Delete.execute}"
    disabled="#{UsapProgramPrivilege.delete}"/>
    <af:commandToolbarButton id="ctb3"
    icon="/Images/filesave.png"
    shortDesc="Save"
    partialTriggers="resId1 ctb_add ctb_delete :::cb1"
    actionListener="#{bindings.Commit.execute}"
    disabled="#{!bindings.Commit.enabled}"/>
    <af:commandToolbarButton id="ctb5" icon="/Images/undo.png"
    actionListener="#{bindings.Rollback.execute}"
    disabled="#{!bindings.Rollback.enabled}"
    immediate="true">
    <af:resetActionListener/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb4"
    icon="/Images/eraser-4.gif"
    shortDesc="Clear"
    action="#{MasterManagedBean.onClearTableSearchFields}"/>
    <af:outputText value="CmmAmcRatesVO1Iterator"
    id="ot_amciterator"
    binding="#{MasterManagedBean.iteratorName}"
    visible="false"/>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.CmmAmcRatesVO1.collectionModel}"
    var="row"
    rows="#{bindings.CmmAmcRatesVO1.rangeSize}"
    emptyText="#{bindings.CmmAmcRatesVO1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.CmmAmcRatesVO1.rangeSize}"
    rowBandingInterval="0"
    filterModel="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    filterVisible="true" varStatus="vs"
    selectedRowKeys="#{bindings.CmmAmcRatesVO1.collectionModel.selectedRow}"
    selectionListener="#{bindings.CmmAmcRatesVO1.collectionModel.makeCurrent}"
    rowSelection="single" id="resId1"
    binding="#{MasterManagedBean.masterTable}"
    styleClass="hieght:100% width:100%"
    columnSelection="multiple" width="1099"
    rowDisclosureListener="#{MasterManagedBean.onRowDiscloseureEvent}"
    partialTriggers="::ctb_add ::ctb_delete ::::cb1">
    <af:column sortProperty="AmrtPrdId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtPrdId.label}"
    id="resId1c1">
    <af:outputText value="#{row.AmrtPrdId}" id="ot8"/>
    </af:column>
    <af:column sortProperty="AmrtFeeId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFeeId.label}"
    id="resId1c2">
    <af:outputText value="#{row.AmrtFeeId}" id="ot7"/>
    </af:column>
    <af:column sortProperty="AmrtRateTyp" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtRateTyp.label}"
    id="resId1c3">
    <af:outputText value="#{row.AmrtRateTyp}" id="ot11"/>
    </af:column>
    <af:column sortProperty="AmrtFxdAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.label}"
    id="resId1c4">
    <af:outputText value="#{row.AmrtFxdAmt}" id="ot3">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtPerc" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.label}"
    id="resId1c5">
    <af:outputText value="#{row.AmrtPerc}" id="ot4">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtMinAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.label}"
    id="resId1c6">
    <af:outputText value="#{row.AmrtMinAmt}" id="ot2">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtMaxAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.label}"
    id="resId1c7">
    <af:outputText value="#{row.AmrtMaxAmt}" id="ot9">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtFolioId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFolioId.label}"
    id="resId1c8">
    <af:outputText value="#{row.AmrtFolioId}" id="ot1"/>
    </af:column>
    <af:column sortProperty="AmrtCurrId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtCurrId.label}"
    id="resId1c9">
    <af:outputText value="#{row.AmrtCurrId}" id="ot10"/>
    </af:column>
    <af:column sortProperty="AmrtRndMthd" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtRndMthd.label}"
    id="resId1c10">
    <af:outputText value="#{row.AmrtRndMthd}" id="ot14"/>
    </af:column>
    <af:column sortProperty="AmrtDecPlc" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.label}"
    id="resId1c11">
    <af:outputText value="#{row.AmrtDecPlc}" id="ot5">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtActiveYn" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtActiveYn.label}"
    id="resId1c12">
    <af:outputText value="#{row.AmrtActiveYn}" id="ot13"/>
    </af:column>
    <af:column sortProperty="AmrtHoldYn" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtHoldYn.label}"
    id="resId1c13">
    <af:outputText value="#{row.AmrtHoldYn}" id="ot12"/>
    </af:column>
    <af:column sortProperty="AmrtEffFdate" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.label}"
    id="resId1c14">
    <f:facet name="filter">
    <af:inputDate value="#{vs.filterCriteria.AmrtEffFdate}"
    id="id1"/>
    </f:facet>
    <af:outputText value="#{row.AmrtEffFdate}" id="ot6">
    <af:convertDateTime pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.format}"/>
    </af:outputText>
    </af:column>
    <f:facet name="detailStamp">
    <af:panelFormLayout id="pfl2" rows="9">
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtPrdId.label}"
    id="plam10">
    <af:outputText value="#{row.AmrtPrdId}" id="ot31"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFeeId.label}"
    id="plam17">
    <af:outputText value="#{row.AmrtFeeId}" id="ot20"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtRateTyp.label}"
    id="plam11">
    <af:outputText value="#{row.AmrtRateTyp}" id="ot28"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.label}"
    id="plam18">
    <af:outputText value="#{row.AmrtFxdAmt}" id="ot16">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.label}"
    id="plam14">
    <af:outputText value="#{row.AmrtPerc}" id="ot30">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.label}"
    id="plam1">
    <af:outputText value="#{row.AmrtMinAmt}" id="ot22">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.label}"
    id="plam13">
    <af:outputText value="#{row.AmrtMaxAmt}" id="ot18">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFolioId.label}"
    id="plam7">
    <af:outputText value="#{row.AmrtFolioId}" id="ot27"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtCurrId.label}"
    id="plam4">
    <af:outputText value="#{row.AmrtCurrId}" id="ot26"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtRndMthd.label}"
    id="plam6">
    <af:outputText value="#{row.AmrtRndMthd}" id="ot25"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.label}"
    id="plam12">
    <af:outputText value="#{row.AmrtDecPlc}" id="ot21">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtActiveYn.label}"
    id="plam2">
    <af:outputText value="#{row.AmrtActiveYn}" id="ot32">
    <f:converter converterId="CharYNAsString"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtHoldYn.label}"
    id="plam8">
    <af:outputText value="#{row.AmrtHoldYn}" id="ot24">
    <f:converter converterId="CharYNAsString"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.label}"
    id="plam15">
    <af:outputText value="#{row.AmrtEffFdate}" id="ot23">
    <af:convertDateTime pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.FeeDescription.label}"
    id="plam16">
    <af:outputText value="#{row.FeeDescription}"
    id="ot29"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.FolioDescription.label}"
    id="plam9">
    <af:outputText value="#{row.FolioDescription}"
    id="ot17"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.ProductDescription.label}"
    id="plam3">
    <af:outputText value="#{row.ProductDescription}"
    id="ot19"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.CurrencyDescription.label}"
    id="plam5">
    <af:outputText value="#{row.CurrencyDescription}"
    id="ot15"/>
    </af:panelLabelAndMessage>
    </af:panelFormLayout>
    </f:facet>
    </af:table>
    </af:panelCollection>
    </af:panelGroupLayout>
    </af:panelBox>
    </f:facet>
    <f:facet name="first">
    <af:panelStretchLayout id="psl3" startWidth="39px">
    <f:facet name="bottom"/>
    <f:facet name="center"/>
    <f:facet name="start"/>
    <f:facet name="end"/>
    <f:facet name="top"/>
    </af:panelStretchLayout>
    </f:facet>
    <f:facet name="top"/>
    <f:facet name="Bticker"/>
    </af:pageTemplate>
    <af:popup id="p2">
    <af:panelWindow id="pw1">
    <af:panelGroupLayout id="pgl2">
    <af:panelHeader text="AMC Rates" id="ph1">
    <af:query id="qryId1" headerText="Search" disclosed="true"
    value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    model="#{bindings.ImplicitViewCriteriaQuery.queryModel}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}"
    resultComponentId="::pt1:pc1:resId1"
    displayMode="compact"
    />
    </af:panelHeader>
    </af:panelGroupLayout>
    </af:panelWindow>
    </af:popup>
    <af:popup id="p_edit" popupCanceledListener="#{MasterManagedBean.resetPopTitle}"
    partialTriggers="pt1:pc1:resId1">
    <af:panelWindow id="pw2" inlineStyle="width:600px; height:600.0px;"
    title="Edit"
    binding="#{MasterManagedBean.masterPenalWindow}">
    <af:panelGroupLayout id="pgl3">
    <af:panelFormLayout id="pfl4" rows="2" maxColumns="2">
    <af:inputListOfValues id="amrtFeeIdId"
    popupTitle="Search and Select: #{bindings.AmrtFeeId.hints.label}"
    value="#{bindings.AmrtFeeId.inputValue}"
    label="#{bindings.AmrtFeeId.hints.label}"
    model="#{bindings.AmrtFeeId.listOfValuesModel}"
    required="#{bindings.AmrtFeeId.hints.mandatory}"
    columns="#{bindings.AmrtFeeId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtFeeId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtFeeId.validator}"/>
    </af:inputListOfValues>
    <af:inputListOfValues id="amrtPrdIdId"
    popupTitle="Search and Select: #{bindings.AmrtPrdId.hints.label}"
    value="#{bindings.AmrtPrdId.inputValue}"
    label="#{bindings.AmrtPrdId.hints.label}"
    model="#{bindings.AmrtPrdId.listOfValuesModel}"
    required="#{bindings.AmrtPrdId.hints.mandatory}"
    columns="#{bindings.AmrtPrdId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtPrdId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtPrdId.validator}"/>
    </af:inputListOfValues>
    <af:inputText value="#{bindings.FeeDescription.inputValue}"
    required="#{bindings.FeeDescription.hints.mandatory}"
    columns="#{bindings.FeeDescription.hints.displayWidth}"
    maximumLength="#{bindings.FeeDescription.hints.precision}"
    shortDesc="#{bindings.FeeDescription.hints.tooltip}"
    partialTriggers="amrtFeeIdId" id="it10"
    readOnly="true">
    <f:validator binding="#{bindings.FeeDescription.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.ProductDescription.inputValue}"
    required="#{bindings.ProductDescription.hints.mandatory}"
    columns="#{bindings.ProductDescription.hints.displayWidth}"
    maximumLength="#{bindings.ProductDescription.hints.precision}"
    shortDesc="#{bindings.ProductDescription.hints.tooltip}"
    partialTriggers="amrtPrdIdId" id="it7"
    readOnly="true">
    <f:validator binding="#{bindings.ProductDescription.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl6" rows="2" maxColumns="2">
    <af:inputListOfValues id="amrtFolioIdId"
    popupTitle="Search and Select: #{bindings.AmrtFolioId.hints.label}"
    value="#{bindings.AmrtFolioId.inputValue}"
    label="#{bindings.AmrtFolioId.hints.label}"
    model="#{bindings.AmrtFolioId.listOfValuesModel}"
    required="#{bindings.AmrtFolioId.hints.mandatory}"
    columns="#{bindings.AmrtFolioId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtFolioId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtFolioId.validator}"/>
    </af:inputListOfValues>
    <af:inputListOfValues id="amrtCurrIdId"
    popupTitle="Search and Select: #{bindings.AmrtCurrId.hints.label}"
    value="#{bindings.AmrtCurrId.inputValue}"
    label="#{bindings.AmrtCurrId.hints.label}"
    model="#{bindings.AmrtCurrId.listOfValuesModel}"
    required="#{bindings.AmrtCurrId.hints.mandatory}"
    columns="#{bindings.AmrtCurrId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtCurrId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtCurrId.validator}"/>
    </af:inputListOfValues>
    <af:inputText value="#{bindings.FolioDescription.inputValue}"
    required="#{bindings.FolioDescription.hints.mandatory}"
    columns="#{bindings.FolioDescription.hints.displayWidth}"
    maximumLength="#{bindings.FolioDescription.hints.precision}"
    shortDesc="#{bindings.FolioDescription.hints.tooltip}"
    partialTriggers="amrtFolioIdId" id="it9"
    readOnly="true">
    <f:validator binding="#{bindings.FolioDescription.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.CurrencyDescription.inputValue}"
    required="#{bindings.CurrencyDescription.hints.mandatory}"
    columns="#{bindings.CurrencyDescription.hints.displayWidth}"
    maximumLength="#{bindings.CurrencyDescription.hints.precision}"
    shortDesc="#{bindings.CurrencyDescription.hints.tooltip}"
    partialTriggers="amrtCurrIdId" id="it3"
    readOnly="true">
    <f:validator binding="#{bindings.CurrencyDescription.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl1" rows="5" fieldWidth="150">
    <af:selectOneChoice value="#{bindings.AmrtRateTyp.inputValue}"
    label="#{bindings.AmrtRateTyp.label}"
    required="#{bindings.AmrtRateTyp.hints.mandatory}"
    shortDesc="#{bindings.AmrtRateTyp.hints.tooltip}"
    id="soc1">
    <f:selectItems value="#{bindings.AmrtRateTyp.items}"
    id="si1"/>
    </af:selectOneChoice>
    <af:inputText value="#{bindings.AmrtFxdAmt.inputValue}"
    label="#{bindings.AmrtFxdAmt.hints.label}"
    required="#{bindings.AmrtFxdAmt.hints.mandatory}"
    columns="#{bindings.AmrtFxdAmt.hints.displayWidth}"

    See if this helps:
    http://blogs.oracle.com/shay/2010/03/popup_details_for_a_table_reco.html

  • Jdev 11.1.1.5 R1 How To Get Row Data From ADF Table

    Hi everyone,
    I have an ADF Table Populated with dummy data (for now). Below the Table there is an InputText field.
    What I need to do is have the body of the message show up in the InputText field when the user clicks on a message in the inbox(Table).
    I've been trying to figure this out for quite some time now, unsuccessfully of course. Hopefully you guys can help me change that.
    I do consider myself a beginner still, so please be as clear and specific as possible.
    Thanks in advance!
    Here is the code I have for the Table/InputText and Backing Beans
    <tr>
    <td>
    <af:table value="#{TableBean.messageAll}" var="message"
    rows="5"
    inlineStyle="color:Navy; border-style:outset; border-color:Background; border-width:thick; font-size:small; text-align:center; vertical-align:middle; height:135.0px;"
    width="610" rowBandingInterval="0" id="t1"
    rowSelection="single"
    selectionListener="#{TableBean.messageSelected}"
    immediate="true" summary="Message Inbox"
    disableColumnReordering="true"
    columnSelection="none"
    columnResizing="disabled">
    <af:column sortable="false" align="center"
    id="chechboxCol" width="25"
    minimumWidth="25">
    <f:facet name="header">
    <h:selectBooleanCheckbox id="selectAll"
    onclick="selectAll();"></h:selectBooleanCheckbox>
    </f:facet>
    <h:selectBooleanCheckbox id="selectMessage"
    value="#{message.selected}"
    immediate="true"></h:selectBooleanCheckbox>
    </af:column>
    <af:column id="urgentCol" width="25" align="center"
    minimumWidth="25">
    <f:facet name="header">
    <h:outputText id="urgentHeader">
    <img src="urgent.gif" height="14"
    width="14" alt="Urgent Icon"/>
    </h:outputText>
    </f:facet>
    </af:column>
    <af:column sortable="true" headerText="From"
    align="start" id="fromCol" width="175"
    minimumWidth="175">
    <af:outputText value="#{message.from}"
    id="ot1"/>
    </af:column>
    <af:column sortable="true" headerText="Subject"
    align="start" id="subjectCol" width="175"
    minimumWidth="175">
    <af:outputText value="#{message.subject}"
    id="ot2"/>
    </af:column>
    <af:column sortable="true" headerText="Type"
    align="start" id="c5" width="100"
    minimumWidth="100">
    <af:outputText value="#{message.type}"
    id="ot3"/>
    </af:column>
    <af:column sortable="true"
    headerText="Date Received" align="start"
    id="c6" width="80" minimumWidth="80">
    <af:outputText value="#{message.date}"
    id="ot4"/>
    </af:column>
    <af:column sortable="true" headerText="Body"
    rendered="false" align="start" id="c7"
    width="100" minimumWidth="100">
    <af:outputText value="#{message.body}"
    id="ot5"/>
    </af:column>
    </af:table>
    </td>
    </tr>
    <tr>
    <td>
    <p>
    <af:commandButton text="Print" id="printButton"
    inlineStyle="font-size:x-small;"/>
    </p>
    <af:inputText binding="#{TableBean.textArea}" rows="10"
    readOnly="true" partialTriggers="t1"
    contentStyle="width:620px;"
    inlineStyle="color:Black; outline-color:Background; outline-style:outset;"
    id="it1"></af:inputText>
    </td>
    </tr>
    package Backing;
    import javax.faces.event.ActionEvent;
    import oracle.adf.view.rich.component.rich.input.RichInputText;
    import oracle.adf.view.rich.component.rich.output.RichOutputText;
    import java.util.List;
    import java.util.ArrayList;
    import oracle.adf.view.rich.component.rich.data.RichTable;
    import org.apache.myfaces.trinidad.event.SelectionEvent;
    public class TableBean {
    private RichInputText textArea;
    private message[] messageAll =
    new message[] { new message("Sender 1", "Author 1", "Message 1",
    "Alert", "6/21/2011",
    "This is the body 1."),
    new message("Sender 2", "Author 2", "Message 2",
    "Notification", "6/22/2011",
    "This is the body 2."),
    new message("Sender 3", "Author 3",
    "Message 3", "Broadcast", "6/23/2011",
    "This is the body 3."),
    new message("Sender 4", "Author 4",
    "Message 4", "Alert", "6/24/2011",
    "This is the body 4."),
    new message("Sender 5", "Author 5", "Message 5",
    "Notification", "6/25/2011",
    "This is the body 5."), };
    public message[] getmessageAll() {
    return messageAll;
    public void messageSelected(SelectionEvent selectionEvent) {
    textArea.setValue("Message body should go here.");
    public void setTextArea(RichInputText textArea) {
    this.textArea = textArea;
    public RichInputText getTextArea() {
    return textArea;
    public class message {
    boolean selected;
    String from;
    String to;
    String subject;
    String type;
    String date;
    String body;
    public message(String from, String to, String subject, String type,
    String date, String body) {
    this.from = from;
    this.to = to;
    this.subject = subject;
    this.type = type;
    this.date = date;
    this.body = body;
    public String getFrom() {
    return from;
    public String getTo() {
    return to;
    public String getSubject() {
    return subject;
    public String getType() {
    return type;
    public String getDate() {
    return date;
    public String getBody() {
    return body;
    }

    try this code in selection method
    RichTable object = (RichTable)selectionEvent.getSource();
    Row row = null;
    for (Object facesRowKey : object.getSelectedRowKeys()) {
    object.setRowKey(facesRowKey);
    Object o = object.getRowData();
    JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)o;
    row = rowData.getRow();
    }

  • How to get edited row values from ADF table?

    JDev 11.
    I have a table which is populated with data from Bean.
    I need to save changes after user make changes in any table cell. InputText is defined for table column component.
    I have defined ValueChangeListener for inputText field and AutoSubmit=true. So when user change value in inputText field, method is called:
    public void SaveMaterial(ValueChangeEvent valueChangeEvent) {
    getSelectedRow();
    SaveMaterial(material);
    This method should call getSelectedRow which take values from selected table row and save them into object:
    private Row getSelectedRow(){
    RichTable table = this.getMaterialTable();
    Iterator selection = table.getSelectedRowKeys().iterator();
    while (selection.hasNext())
    Object key = selection.next();
    table.setRowKey(key);
    Object o = table.getRowData();
    material = (MATERIAL) o;
    System.out.println("Selected Material Desc = "+material.getEnumb());
    return null;
    Problem is that getSelectedRow method doesnt get new (edited) values, old values are still used.
    I have tried to use ActiveButton with same method and it works fine in that case. New values are selected from active row and inserted into object.
    JSF:
    <af:table var="row" rowSelection="single" columnSelection="single"
    value="#{ManageWO.material}" binding="#{ManageWO.materialTable}">
    <af:column sortable="false" headerText="E-number">
    <af:inputText value="#{row.enumb}" valueChangeListener="#{ManageWO.SaveMaterial}" autoSubmit="true"/>
    </af:column>
    <af:column sortable="false" headerText="Description">
    <af:inputText value="#{row.desc}" valueChangeListener="#{ManageWO.SaveMaterial}" autoSubmit="true"/>
    </af:column>
    </af:table>
    <af:activeCommandToolbarButton text="Save" action="#{ManageWO.EditData}"/>
    What is a correct place from where save method should be called to get new (edited) values from ADF table?
    Thanks.

    Did you look into the valueChangeEvent?
    It has oldValue and newValue attributes.
    public void SaveMaterial(ValueChangeEvent valueChangeEvent) {
    Object oldVal = valueChangeEvent.getOldValue();
    Object newVal = valueChangeEvent.getNewValue();
    // check if you see what you are looking for.....
    getSelectedRow();
    SaveMaterial(material);
    }Timo

Maybe you are looking for

  • Service completion indicator

    Dear Experts, I know there is the field for Delivery completion Indicator for std PO's.. After that we cannot receive any further materials against that PO. (Delivery Tab).. But for Service PO.. the delivery completion indicator is not avl.. please l

  • Will QuickTime Pro Edit mp4?

    I own the Madonna: The Immaculate Collection on DVD. I have converted the VOB file to mp4, but it is 62 minutes long. Every video is included in the one file. I want to break the videos down individually for my iPod. I don't mind spending the $30 to

  • CS4 huge dissapointment

    I have been a Macromedia / Adobe advocate and faithful follower since the early years. I remember when I started what now is a small company with 10 employees and purchased my first copy of Flash 2. I happily went to the Adobe online store and purcha

  • Many shapes, one gradient fill

    In Illustrator CS4: I need to fill 20 circles with one common grad fill... so that the 1st circle is dark to the 20th as lightest (NOT each individual circle getting it's own gradient). I thought this would be easy (clipping mask) but no. Any ideas?

  • GUI STATUS MISSING

    Hello All, When i execute cs03 tcode its showing error 'gui status maa0 missing in prog' now i knw pfstatus for the given prog is not set. when i open this prog there are some 1000 lines of code and include in tht, now how to find the pfstatus in tht