Skip to Content
author's profile photo Former Member
Former Member

Problem while handling Parent and child nodes in CE

Hi all

I am facing a problem with handling Child and Parent nodes in CE.

I have a Table in which I have drop downs. On selecting a value in the drop down, I have to take that value and do some action.

I am trying to access the value in the following ways

wdContext.nodeParent().currentParentElement().nodeChild().currentChildElement().getVaActivity();

wdContext.nodeChild ().currentChildElement().getVaActivity();

When I select the drop down from the first row of the Table the code works fine.

But when I select other rows, it returns the current value of the first row.

The lead selection of the parent always returns u20180u2019 even though you have done some action in row 2,3 etc.

The same code gives the required values in EP 7.0; I.e.: it returns the values form selected row in the table.

Basic problem is that the current value of parent always returns the first row.

Following are the Properties of the nodes

Parent

Collection Cardinality: 0-n

Singletone: true

Child:

Collection Cardinality: 0-n

Singletone: false

Please help

Regards

Deepu

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

1 Answer

  • author's profile photo Former Member
    Former Member
    Posted on Jul 23, 2008 at 10:04 PM

    Hi,

    In CE changing dropdown selections doesn't fire table leadselection events. If you want to use a dropdown in a context-driven UI element like a Table, you need to use of event parameter mappings. So here are the steps:

    1. Create a new action for the onSelect event of the dropdown (I will write the code for DropDownByIndex), let's call it Select.

    2. Add a parameter parentElement whose type is same as the type of the parent node element. So from your example it would be IParentElement. Select the chek-box for "Adapt event-handler parameter". This will add a new parameter to the event-handler method onActionSelect called parentElement.

    3. Write this inside wdDoModifyView :

    if (firstTime) {
        IWDAbstractDropDownByIndex ddi = (IWDAbstractDropDownByIndex) view.getElement("<id of DropDownByIndex>");
        ddi.mappingOfOnSelect().addSourceMapping(IWDAbstractDropDownByIndex.IWDOnSelect.NODE_ELEMENT,"parentElement"); 
    }
    

    3. If you want to set the lead selection of the table to the row where the dropdown is write this inside the event-handler:

    wdContext.nodeParent().setLeadSelection(parentElement.index()); //parentElement is the event handler parameter added through the action.
    

    Note that the event parameter IWDOnSelect.NODE_ELEMENT points to the node element that defines the data mapping for the containing row and not the node element of the source for the dropdown. This has been specfically added for such a scenario. All this is well documented [here|http://help.sap.com/javadocs/nwce/current/wdr/com/sap/tc/webdynpro/clientserver/uielib/standard/api/IWDAbstractDropDownByIndex.IWDOnSelect.html#NODE_ELEMENT].

    Regards,

    Satyajit.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.