cancel
Showing results for 
Search instead for 
Did you mean: 

HTMLB : Capturing selected text in dropdown inside AbstractPortalComponent

Amey-Mogare
Contributor
0 Kudos

Hello,

I am using AbstractPortalComponent to display a DropDownListBox using ==> Usage & Type - DropDownListBox.

I have written below event handler and want to know how to get current selection made by user in dropdown list: -

UI element declaration & definition:

DropdownListBox dd_Language = new DropdownListBox("languageDD" + systemForLang);

dd_Language.addItem("EN");

dd_Language.addItem("DE");

dd_Language.addItem("FR");

dd_Language.setOnSelect("onLangSelect");

worksetEntryLayout.addComponent(renderUiX, 2, dd_Language);

Event handler:

public void onLangSelect(Event event)throws PageException{

        ListSelectEvent ddListBox = (ListSelectEvent) event;

        String compName = ddListBox.getComponentName();

}

How do I get hold of selected entry in dropdown inside onLangSelect method?

Please help.

Thanks & Regards,

Amey

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Amey,

Please try with the following modifications in your event handler code -

public void onLangSelect(Event event)throws PageException{

     DropdownListBox lang_list = (DropdownListBox)this.getComponentByName("dd_Language");

     String val = lang_list.getSelection();

}

Amey-Mogare
Contributor
0 Kudos

Hello Prerana,

Inside my event handler, it is not able to resolve method name 'getComponentByName' ! 😞

Even tried with this.getComponentByName, but that too doesnt work.

Thanks & Regards,

Amey

0 Kudos

Hi Amey,

try to use this.getComponent, not getComponentByName.

BR,

Saar

Amey-Mogare
Contributor
0 Kudos

Hello Saar,

Actually, methods getComponentByName or getComponent are not getting resolved in my AbstractPortalComponent! 😞

package com.amey;

import com.sap.tc.logging.Category;

import com.sap.tc.logging.Location;

import com.sap.tc.logging.Severity;

import com.sap.tc.logging.SimpleLogger;

import com.sapportals.htmlb.DropdownListBox;

import com.sapportals.htmlb.Form;

import com.sapportals.htmlb.rendering.IPageContext;

import com.sapportals.htmlb.rendering.PageContextFactory;

import com.sapportals.portal.prt.component.AbstractPortalComponent;

import com.sapportals.portal.prt.component.IPortalComponentInitContext;

import com.sapportals.portal.prt.component.IPortalComponentRequest;

import com.sapportals.portal.prt.component.IPortalComponentResponse;

import com.sapportals.portal.prt.component.PortalComponentException;

import com.sapportals.portal.prt.pom.IEvent;

public class TrialDropDownListBox extends AbstractPortalComponent

{

  private static final Location loc = Location.getLocation(TrialDropDownListBox.class);

  private static final Category cat = Category.getCategory(Category.APPS_COMMON, TrialDropDownListBox.class.getName());

    public void doContent(IPortalComponentRequest request, IPortalComponentResponse response)

    {

  

    SimpleLogger.log(Severity.INFO, cat, loc, "Debug", "[TrialDropDownListBox]doContent called");

  

    IPageContext myContext = PageContextFactory.createPageContext(request,response);

  Form myForm = myContext.createFormDocument("ameyForm");

  myContext.getDocument().addComponent(myForm);

  

    DropdownListBox dd_Language = new DropdownListBox("languageDD");

    dd_Language.addItem("EN", "ENGLISH");

    dd_Language.addItem("DE", "GERMAN");

    dd_Language.addItem("FR", "FRENCH");

    dd_Language.setOnSelect("LangSelect");

  

    myForm.addComponent(dd_Language);

  

    myContext.render();

  

  

  

    }

   

}

0 Kudos

Hi Amey,

That means you have problems with your imports/jars.

Check the build path to make sure that the your project is first and that you have all of the jars needed.

BR,

Saar

Amey-Mogare
Contributor
0 Kudos

Thanks Saar for reply. I will check.

Answers (0)