How to get Current Row values in Af:ForEach

Hi,
We have a requirement to conditionally Display/Hide CommandLink item in af:forEach Loop.
<af:forEach items="#{bindings.RegionalAreaPVO.rangeSet}" var="parent">
<af:spacer height="10" id="s1"/>
<af:commandLink inlineStyle="font-weight:bold;" text="#{parent.ItemName}" partialSubmit="true" actionListener="#{backingBeanScope.RegionalAreaBean.launchTaskflow}" id="cl1" rendered="*#{backingBeanScope.XXWFCRegionalAreaBean.modelEligibleflag eq true}*">
<af:setActionListener from="#{parent.Code}" to="#{parentNode}"/>
</af:commandLink>
</af:forEach>
I have added a Cutom Managed Bean Class and Returning boolean value to Control Render property which is working. But now i want to add business Logic based on 'parent.ItemName' or 'parentNode' Values in the bean method to return proper Boolean value.
But i am unable to get the Current Iteration values in the bean method.
I am using below EL expressions to get the values. But no luck.
String nameel = (String)ADFUtil.evaluateEL("#{bindings.parent.ItemName}");
String codeel = (String)ADFUtil.evaluateEL("#{parent.Code}");
String nodeEl = (String)ADFUtil.evaluateEL("#{parentNode}");
Also, i have tried getting the Row object like below but i am getting the First row details always. My intention is to get Current row values and use them for Business logic.
ViewRowImpl row =
(ViewRowImpl)ADFUtil.evaluateEL("#{bindings." + VoName +
"Iterator.currentRow}");
String code = (String)row.getAttribute("Code");
Any help is highly appreciated.
Thanks
Kaja

Hi Sascha,
I have tried that. But in my case the functional logic behind the Rendering is based on more complex logic. Hence i am trying to add a method to return a boolean in Render property of the Link.
But the real problem for me is, in the Managed bean method i am not finding a way to get the Current Iteration index. If i can get the Current iteration index, i can get the Corresponding Component ID of Command link (In the forEach Loop Component Id's are getting generated Dynamically based on Iteration Index), i can use that and add additional logic and derive true/false to return.
Any inputs?
Thanks
Kaja

Similar Messages

  • How to get current row value from table when press the submit button

    Hi,
    I want to get the current row value of SuccessionPlanId which is one of the column in a advanced table.
    I created one button (created using personalization, action fired thru CO)in the table as column, so each row having one button, if i press the first row's button means then i want to fetch the first row's SuccessionPlanId and if it is 3rd means then i want to get the value of third row's value.
    How to do it in controller extension?
    Please reply soon, its urgent.
    Thanks in advance,
    SAN

    Pratap,
    Yes, I tried with 'delete' button which is seeded one.
    For this, our code using row reference is working too fine. it throws exact SuccessionPlanId value of corresponding row.
    I created MessageStyledText, but here i need to give text value right, then only it 'll appear in the page.
    Instead i created one image and fired explicitly from the controller processRequest method.
    But the same problem remains..
    here my code:
    public void processRequest(OAPageContext pageContext, OAWebBean webBean){
    super.processRequest(pageContext, webBean);
    OAButtonBean oabb = (OAButtonBean)webBean.findChildRecursive("XXSubmit");
    FireAction action = new FireAction("XXSubmit");
    oabb.setAttributeValue(UIConstants.PRIMARY_CLIENT_ACTION_ATTR, action);
    OAImageBean oaib=(OAImageBean)webBean.findChildRecursive("XXSubmitImage");
    oaib.setFireActionForSubmit("XXSubmitImage", null, null, true);
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean){
    if("XXSubmitImage".equals(pageContext.getParameter("event"))){
    String succIdI="";
    String rowRefI = pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    if(rowRefI != null && !("".equalsIgnoreCase(rowRefI ))){
    PerSuccPlanSearchVORowImpl rowI = (PerSuccPlanSearchVORowImpl)oaam.findRowByRef(rowRefI);
    if(rowI != null)
    succIdI=rowI.getAttribute("SuccessionPlanId").toString();
    }else{
    throw new OAException("Row is null");
    throw new OAException(succIdI, OAException.INFORMATION);
    }else{
    super.processFormRequest(pageContext, webBean);
    If i run the page using this controller, it throws exception without any value, because for 'succIdI' i initialized without any string.
    Can you please suggest me how to solve?

  • Issue in getting current row value using getCurrent Value

    Issue:When I call ththe method executeSearchVO from controller class
    with Row row = personalActionSearchVO.first();
    I am getting the corresponding value.
    but my requirement is I have multiple record , If i press action on any of the record, I need to read SITName value for the particular record and need to pass it as parameter to other pager(i mean If i select any record, I need to get corresponding value in the attribute for the record.)
    if i comment personalActionSearchVO.first(); i am getting null pointer exception.
    Pl. helpme how to get current row instead of first row always.
    AMIMPL Clause
    public void executeSearchVO(String loginPersonId)
    XXHRPersonalActionSearchVOImpl personalActionSearchVO =getXXHRPersonalActionSearchVO1();
    personalActionSearchVO.initQuery(loginPersonId);
    // Row row = personalActionSearchVO.first();
    row = personalActionSearchVO.getFirstFilteredRow("action","1");
    Row masterRow = row;
    personalActionSearchVO.setCurrentRow(masterRow);
    OARow Row1 = (OARow)personalActionSearchVO.getCurrentRow();
    System.out.println("Org "+Row1.getAttribute("Organization"));
    calling this method from controller clause
    if("action".equals(pageContext.getParameter(EVENT_PARAM)) )
    System.out.println("Person Id "+ pageContext.getParameter("XXHRPersonId"));
    Serializable methodParams[] = {pageContext.getEmployeeId()+""};
    applicationModule.invokeMethod("executeSearchVO",methodParams);
    need it urgently. pl. help
    thanks
    siva

    Timo,
    I am new to Jdevloper. I will explain the issue in detail.
    Version: Oracle 9i Jdeveloper
    I have a query page with multiple records. when I perform action , I need to pass 2 parameters from query screen to my actual page.
    1 parameter is Login person Id,. Now the issue is with getting current value for 2nd paramenter. 2nd Parameter will be changed depends upon record i am choosing in my query page: column is : Information Name.
    when I use getcurrentrow , I am getting null pointer exception.
    My controller class when I click action button :
    if("action".equals(pageContext.getParameter(EVENT_PARAM)) )
    Serializable methodParams[] = {pageContext.getEmployeeId()+""};
    applicationModule.invokeMethod("executeSearchVO1",methodParams);
    {color:#993300}
    // Here I need to get InformationName value based on the record I am choosing{color}
    HashMap hashMap = new HashMap(2);
    hashMap.put("XXHRPersonId", pageContext.getParameter("XXHRPersonId"));
    // hashMap.put("InformationName", methodParams);
    pageContext.forwardImmediately(
    "OA.jsp?page=/xxhr/oracle/apps/xxhr/selfservice/personalaction/webui/XXHRPersonalActionPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    hashMap,
    true, // Retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO
    my AMIMPL Clause :
    I am just pasting whatever I have tried. Pl. suggest me If my code is wrong.
    *{color:#993300}I need to get current row information value from the below method*
    *{color}*
    public void executeSearchVO1(String loginPersonId)
    XXHRPersonalActionSearchVOImpl personalActionSearchVO =getXXHRPersonalActionSearchVO1();
    personalActionSearchVO.initQuery(loginPersonId);
    System.out.println("Row count "+personalActionSearchVO.getRowCount());
    // Row row = personalActionSearchVO.first();
    Row row = personalActionSearchVO.getCurrentRow();
    System.out.println("Informaton Name "+row.getAttribute("InformationName");
    In this , If i initialzie with Row row = personalActionSearchVO.first();I am able to get value for my column Information Name.
    whereas, if I use directly Row row = personalActionSearchVO.getCurrentRow();, i am getting null pointer exception.
    Pl. let me know how to get current row value for Information Name.
    Looking for the reply at the earliest.
    Thanks
    siva

  • How to get current row data in table control

    Hi , expert ,
       I am professional in oracle ,  but  now I am a new guy in SAP ABAP .
    I  have a question in UI
    How to get current row data and click pushbutton  in table control  to open next screen ?
    I want to get the current data and open next screen to carry out detail detail .
    Thansk for all your suggestion .

    GET CURSOR LINE SY-CUROW .
      READ TABLE internal_table index SY-CUROW.

  • How to get Current row of ViewObject in the DoDML methode

    Hi all
    I have two ViewObject EmplyesView and DeptView
    How to get Current row of ViewObject DeptView in the DoDML methode of EmplyesView

    OK, we can play this game on and on...
    I'll ask for a use case (http://en.wikipedia.org/wiki/Use_case) and you don't give any info we don't already know. After an other 10 posts we probably know what you real problem is and can give you the advice which you could have gotten in the fist place.
    So please take some time and describe the problem as if you would ask your mother for help. Tell us how the data model is build and how the VO are related. Is there any input from an user involved? Which information from the other view do you need? How do you get to the doDML method? Is there a button in the ui involved?
    Timo

  • How to get  current row(Based on Radio button check)  submit button Click

    Hi i hava Query Region Search(Based On Auto Customization Criteria).
    For Showing Results iam Using Table Region.
    Using Radio button How we get the row reference value using Submit button Click.
    Please Help on this .
    Thanks & Regards
    San

    Hi san ,
    Try this
    if ("EventID".equals(pageContext.getParameter(EVENT_PARAM)))
    String rowRef = pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
    OARow row = (OARow)am.findRowByRef(rowRef);
    VORowImpl lineRow = (YourVORowImpl)findRowByRef(rowRef); // Replace your vo name .
    Please refer this link , Let me know if its not clear .
    Single Selection in table Region in OAF .
    Keerthi

  • In badi ME_PROCESS_PO_CUST how to get preivious row value from table ctrl?

    hi Friends,
    I am Using ME_PROCESS_PO_CUST badi for validation in Purchase oreder (ME21N),
    For that I implementaed PROCESS_ITEM method which fires during each row now i want to add another validation in same implimentation for that i need privious row's value so how to get that value ?
    following is my current validation code. 
    method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
      DATA:ls_poitem TYPE mepoitem.
      DATA:ls_poheader TYPE MEPOHEADER.
      DATA:lm_poheader TYPE ref to IF_PURCHASE_ORDER_MM.
      DATA:w_mara TYPE mara.
      DATA:IT_ZMMTBL039 TYPE STANDARD TABLE OF ZMMTBL039 ,
           WA_ZMMTBL039 TYPE ZMMTBL039 .
      DATA:ls_poitem1 TYPE mepoitem.
      DATA:V_KUNNR1 TYPE KNA1-KUNNR.
      DATA:V_KUNNR2 TYPE KNA1-KUNNR.
      ls_poitem = im_item->get_data( ).
      lm_poheader = im_item->GET_HEADER( ).
      ls_poheader = lm_poheader->GET_DATA( ).
      CLEAR: WA_ZMMTBL039,w_mara.
      REFRESH:IT_ZMMTBL039[] .
      SELECT *
        INTO  TABLE  IT_ZMMTBL039
        FROM ZMMTBL039
       WHERE bsart EQ ls_poheader-bsart.
      IF sy-subrc EQ 0.
        CLEAR: WA_ZMMTBL039,w_mara.
        SELECT SINGLE *
          INTO w_mara
          FROM mara
         WHERE matnr EQ ls_poitem-MATNR.
        IF SY-SUBRC EQ 0.
          READ TABLE IT_ZMMTBL039 INTO WA_ZMMTBL039 WITH KEY  bsart = ls_poheader-bsart
                                                              mtart = w_mara-mtart
                                                              spart = w_mara-spart.

    Hello
    If you had searched the SDN forums you would have found plenty of answers to your question.
    Following is some sample coding:
    method IF_EX_ME_PROCESS_PO_CUST~POST.
    DATA:
        ls_header TYPE mepoheader,
      lt_items   TYPE purchase_order_items,
      ls_item   TYPE purchase_order_item,
      ls_item TYPE mepoitem.
      ls_header = im_header->get_data( ).
      lt_items = im_header->get_items( ).
      LOOP AT items INTO ls_item.
        ls_item = line_item-item->getdata( ).
        " process item data...
      ENDLOOP.
    ENDMETHOD.
    Regards,
      Uwe
    PS: Do not use such kind of pseudonyms instead of your real name. Because my impression is that a nobody (in term of ABAP development competence) tries to claim to be a somebody who fills his knowledge gaps via SDN. Using pseudonyms significantly decreases your changes to get any answers at the SDN forums.

  • How to get Current Row information

    Hi,
    Actually i have an lov item and when user enters some value in the lov and just tabs out the process request method on the lov region is fired. Now the lov item is in a advance table and table has lets say 5 rows.
    Now the user enters some invalid value in lov item of say 3 row and tabs out of the lov. As a result the lov popup gets enabled and process request at the lov region is called.
    Now my requirement is in the process request of lov region i want to get hold of the current row of view object.
    I have attached a controller at the lov region and i have put system.out.println at process request method.
    The control is going there, now when i grab the VO and do getCurrentRow() it doesn't return anything.
    Actually i know that we can capture the tab out event using pageContext.islovevent but it gets fired only for valid values in lov input. for invalid values process request is called at the lov region.
    Kindly put some light on it.
    Thanks,
    Gaurav Sharma

    Actually, when the user tabs out of the lov then if there's a valid value in lov then lovValidate event is fired and lov is not popped up. But for invalid values lovvalidate event is not getting fired but control goes to the process request of lov region.
    My requirement is that i have two lovs in an advance table region . one for Country and one for State.
    Now i want that as the user enters some value in State lov and tabs out then as the lov gets popped up then it should pick up the value in Country LOV and based on that Country it should display the results for the current row as there may be multiple rows on advance table.
    Now there are two things, when user clicks on lov torch on state then lov prepare event is fired and then i am able to grab the the country for the current row using row reference.
    But when user enters some invalid value in state lov and tabs out then no event is fired, rather than this process request is called at the lov region . Now how can i capture the value in Country lov of current row.
    Thanks,
    Gaurav
    Edited by: [email protected] on May 21, 2009 4:59 AM

  • How to get current row using submit button ?

    Hello Friends ,
    Is there any way i can capture the value of current row by submit button ?
    Here is my requirement , i have seeded OAF screen and it has table region one of the column has radio button , the existing
    functionality is when ever the radio button is selected and click on submit button ( submit button attached on top of the table region )
    other oaf page is getting opened .
    Now i wish to restrict the navigation based on some condition , but i don't know how to get the current row using submit button .
    Note : there is no Fire Action event for radio button column ? I dont' know how orale is selecting a specific row
    Any suggestion please ?
    Regards ,
    Vamsi

    Thanks sushant for your response ,
    Well i have tried your approch , i am not getting values for current row .
    if (pageContext.getParameter("paApply") != null)
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    OAViewObject localOAViewObject1 = (OAViewObject)am.findViewObject("ProjectDatesVO");
    if(localOAViewObject1!=null) {
    Row DateVoROw = localOAViewObject1.first();
    RowSetIterator iterator = localOAViewObject1.createRowSetIterator("iterator");
    iterator.setRangeStart(0);
    iterator.setRangeSize(localOAViewObject1.getRowCount());
    for(int i=0; i<iterator.getRowCount(); i++)
    DateVoROw=iterator.getRowAtRangeIndex(i);
    String vacancyValue= DateVoROw .getAttribute("vacancyname).toString();
    Could you please let me know where i am going wrong
    Thanks again ,
    Vamsi

  • 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

  • How to get Current Row in POV of a screen

    hi ,
    On F4 of a field in a screen in POV, i need to fetch some details based on some other fields in the same row. How can i get the row number??
    Thanks

    Hi Radhika,
    Try this way. Let me know if you get any doubt .
    *  MODULE f4_on_tablecontrol OUTPUT
    MODULE f4_on_tablecontrol OUTPUT.
      DATA: BEGIN OF it_marc OCCURS 0,
              matnr TYPE marc-matnr,
              werks TYPE marc-werks,
            END OF it_marc.
      DATA:it_dynpread TYPE TABLE OF dynpread,
           wa_dynpread LIKE LINE OF it_dynpread.
      DATA: it_return_tab TYPE ddshretval OCCURS 0,
            wa_return LIKE LINE OF it_return_tab.
      wa_dynpread-fieldname = 'ITAB-WERKS'.
      wa_dynpread-stepl     = tabc-current_line. "Where TABC is table control name.
      APPEND wa_dynpread TO it_dynpread.
      CLEAR  wa_dynpread.
      "DYNP_VALUES_READ read screen
      CALL FUNCTION 'DYNP_VALUES_READ'
        EXPORTING
          dyname     = sy-repid
          dynumb     = sy-dynnr
        TABLES
          dynpfields = it_dynpread.
      READ TABLE it_dynpread INTO wa_dynpread INDEX 1.
      p_werks = wa_dynpread-fieldvalue.
      IF it_marc[] IS INITIAL.
        SELECT * FROM marc INTO CORRESPONDING FIELDS OF TABLE it_marc WHERE werks = p_werks.
      ENDIF.
      "F4 help F4IF_INT_TABLE_VALUE_REQUEST
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield    = 'MATNR'
          dynpprog    = sy-repid
          dynpnr      = sy-dynnr
          dynprofield = 'ITAB-MATNR'
          value_org   = 'S'
        TABLES
          value_tab   = it_marc
          return_tab  = it_return_tab.
      IF sy-subrc EQ 0.
        READ TABLE it_return_tab INTO wa_return INDEX 1.
        IF sy-subrc EQ 0.
          p_matnr = wa_return-fieldval.
        ENDIF.
      ENDIF.
    ENDMODULE.                    "f4_on_tablecontrol OUTPUT
    Thanks
    Venkat.O

  • How to get current db value in backing bean

    Hi,
    I'm using jdeveloper 11.1.2.3.0
    I would like to know how could I access the old value of an attribute in backing bean.
    I know I can get it in the EntityImpl level with getPostedAttribute function,
    but as I see I don't have permission to access this function in the ViewImpl.
    I get this error:
    Error(151,33): getPostedAttribute(int) has protected access in oracle.jbo.server.EntityImpl.
    Could you help?
    What is the correct way to get the current value on db in backing bean?
    Thanks a lot!

    You can add a transient attribute to the Entity object to hold the old value of the desired attribute, then you can add this attribute to the view object.
    check [url http://www.youtube.com/watch?v=iKVIiK0FBXI]Retrieving the previous value of an ADF BC attribute 

  • How to get current row of Advanced table with no submit

    I have an advanced table with an 'Add another button'. When an empty row is created by clicking this button, LOV is used on the first column to populate other fields of the row. The rows of the table carry a button called "Add dependencies" whose functionality is to take the user to a different table to add rows to a different VO. This button is just a button and not a submitButton. I am passing the row's primary key as part of the URI as Vo attribute FdTaskId={@FdTaskId}
    The button works perfectly fine for database fetched rows (rows already present in the database), but, for the rows created using 'Add Another button', though LOV populates all fields including the primary key, the URI parameter passes null to the next page. That means, the VO attribute is not set. This works fine only when a 'submit' happens in the first page. For example, if I click Add another row again, then the previously inserted row passes the primary key fine as part of {@FdTaskId}.
    Could you please help me how I can resolve this issue?
    Thanks,
    Datta

    I am doing exactly that. My issues is that, VO attribute is passed correct for the table rows which are fetched from the database. For the table rows which got created through 'Add Another button', the VO attribute passed through URI as {@FdTaskId} is returning null. The VO attribute sets only when a form submit happens. For example, after adding a row through 'Add another row' button, click the same button again to add one more row and now go back to previously added row and now you can see that its VO attribute is set ({@FdTaskId} carries value )

  • How to get selected row values in a table using check box

    Hi ADF Experts,
    JDEV Version 11.1.1.7.0
    My requirement is getting the selected row valuesof a af:table using a checkbox(multi select).
    Thanks,
    Animesh

    Hi,
    add a transient attribute to the POJO entity and update this through a check box. The ensure you have autosubmit=true set on the check box. In a value change listener set or remove the row's checbox attribute value
    Frank

  • How to get current row from advanced table

    Hi,
    I have the following code to pick the value of columnA from one of the columns of an advanced table:
    OAViewObject vo = (OAViewObject)am.findViewObject("AAALineVO2");
    if (vo != null)
    OARow vorow = (OARow)vo.getCurrentRow();
    String ColA = (String)vorow.getAttribute("ColumnA");
    String message = ColA; //to throw message so i can verify the value of ColumnA
    throw new OAException(message, OAException.INFORMATION);
    }It's picking up the first value of ColumnA of the first record correctly, however when I add a new row, it's not picking up the value of columnA anymore.
    What am I doing wrong?
    Thanks in advance,
    N

    Try with this:
    import oracle.apps.fnd.lookups.server.LookupCodeVORowImpl;
    public void aaa (String row)
        LookupCodeVORowImpl laborcreateeovorowimpl = (LookupCodeVORowImpl)findRowByRef(row);
    }Thanks
    --Anil                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for