Binding UI element in a table

Hi
I have a table UI based on a context mapped to Adaptive RFC Model.
I would like to add another column with buttons and to be able to manipulate their 'enable' property based on values in the table.
I created new context node with attribute value of type Boolean and bind the button's property to it. This context node is filled before the table is displayed.
Well, this doesn't work.
Does anyone have better idea???
Thanks, Nachshon.

Hi Valery
Thanks for the prompt replay.
I tried your suggestion but it is impossible to add a value attribute (nor model attribute) to the model node, I get:
"Adding attributes is currently not supported if the node or the model class (for context model nodes) has a dictionary structure binding."
Or did I misunderstood???
Nachshon

Similar Messages

  • How to bind an element in an arrayList to a table column

    Hi everyone, I need your help.
    I have an ObjectListDataProvider to bind a class MyClass to a table. Inside of MyClass, there is a property called dynNumOfElements of type ArrayList. I need dynamically create the columns of the table to match the number of elements in ArrayList, and bind each element in the ArrayList to a column.
    However I dont know how to do it? It is going to be something like createValueBinding("#{currentRow.value(['dynNumOfElements[1]']}"). Obviously this does not work.
    Can you tell me a way to solve this problem?
    Is it possible to bind a column to an element in a collection?
    Thanks in advance

    Thanks Winston,
    Following is what I did. They are all in Page1.jsp
    public String getMyData(){
    // Make sure to check for nulls
    return myList.get(count++).toString();
    private ArrayList myList = new ArrayList();
    private int count = 0;
    public String button3_action() {
    // TODO: Replace with your code
    //initialize list
    myList.add("string 1");
    myList.add("Stirng 2");
    myList.add("string 3");
    TableColumn tc1 = new TableColumn();
    tc1.setId("tc1");
    tc1.setHeaderText("tc1");
    tableRowGroup2.getChildren().add(tc1);
    StaticText st1 = new StaticText();
    st1.setValueBinding("text", getApplication().createValueBinding("#{Page1.myData}"));
    tc1.getChildren().add(st1);
    return null;
    The error message is "Error getting property 'getMyData' from bean of type helloweb.Page1"
    Can you help me to fix the problem? Thanks a lot.

  • How to insert a text edit UI element  in a table

    hi all,
    I want a text edit UI element in a table .I do not want input field because text entered can be very long and whole text cant be seen then.Is there any way to increase the width of input field if i insert an input field ? or what can be other solution for this?

    Hi Govind,
    You can't insert Text Edit as a cell variant in table. But you can increase the 'Width' property of Input Field, say to 500px or as per your requirement, so that you can display the full text at one go. Or you can bind the 'Width' property to a context and set the width at run time as per the text length.
    Thanks,
    Sumit

  • How to bind a icon in the table column

    Hi All
        I have to bind a icon in a table column.

    Choose a table cell editor for that column that is able to display an icon, e.g. Caption, Image, LinkToAction
    Create a context attribute "iconURL" under the data source node of the table.
    Bind the corresponding property of the table cell editor, e.g. Image.source, to this attribute.
    At runtime, the data source node will have elements. Element at index i will be displayed in table row i.
    Set the "iconURL" attribute of each node element to the icon URL to be displayed in the table row.
    You can use the predefined icons by using an URL of the form "~sapicons/<icon_filename>", or you can put your icons inside folder src/mimes/components/<componentName> and use the filename as URL.
    Armin

  • How to bind dynamic checkbox to a table

    Hi,
    I have a table that holds many fields. I put these fields on the screen dynamically.
    I would like to bind a checkbox to select a field row.
    I tried to bind the checkbox to the table but with no success. I keep getting the binding to the first element.
    Does anyone has an example?
    Thanks,
    Itay

    Hi P,
    here is my code:
      LOOP AT lt_available_items ASSIGNING <item>.
        ADD 1 TO lv_col.
        IF lv_col > lv_cell_per_col.
          lv_col = 1.
          ADD 1 TO lv_row.
          lv_new_line = 'X'.
        ENDIF.
    *   Add dynamic group
        CONCATENATE 'GROUP_' lv_col '_' lv_row INTO lv_str.
        lr_new_group = cl_wd_group=>new_group( id = lv_str view = view design = '02' ).
        IF lv_new_line = 'X'.
          CLEAR lv_new_line.
          cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_new_group ).
        ELSE.
          cl_wd_matrix_data=>new_matrix_data( element = lr_new_group ).
        ENDIF.
        lr_new_group->set_width( '230' ).
        cl_wd_matrix_layout=>new_matrix_layout( container = lr_new_group ).
        lr_group->add_child( lr_new_group ).
    *   Left side container
        CONCATENATE 'CONT_L_' lv_col '_' lv_row INTO lv_str.
        lr_new_container = cl_wd_transparent_container=>new_transparent_container(
              id = lv_str view = view ).
        cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_new_container ).
        cl_wd_matrix_layout=>new_matrix_layout( container = lr_new_container ).
        lr_new_group->add_child( lr_new_container ).
    *   Add checkbox
        CONCATENATE 'CHK_' lv_col '_' lv_row INTO lv_str.
        lr_checkbox = cl_wd_checkbox=>new_checkbox( view   = view
                                                    id     = lv_str ).
        lr_matrix_head = cl_wd_matrix_head_data=>new_matrix_head_data( element = lr_checkbox ).
        lr_checkbox->set_layout_data( lr_matrix_head ).
        lr_checkbox->bind_checked( 'AVAILBLE_ITEMS.SELECTED' ).
        lr_new_container->add_child( lr_checkbox ).
    endloop.
    my node is AVAILABLE_ITEMS and it has the attributes: SELECTED, MATNR, MAKTX...
    thanks,
    Itay

  • Get selected elements from a table

    Hi all,
    I have a requirement like i m enhancing standard component in that i have added one button on click of that i want fetch the selected line item from the table ( which is a normal table). selection mode is auto.
    i tried with  the following code.
    DATA:lr_element                   TYPE REF TO if_wd_context_element,
           lv_index                     TYPE i.
    *--Get selected element
      lr_element = wdevent->get_context_element( name = 'CONTEXT_ELEMENT' ).
    ****Here itself its throughing dump because lr_element is initial***************
    *--get selected element index.
      lv_index = lr_element->get_index( ).
    can any one help me what is the wrong.. else suggest me how to get the selected elements from a table....
    Thanks in advance.

    *--Get selected element
    lr_element = wdevent->get_context_element( name = 'CONTEXT_ELEMENT' ).
    if  lr_element is bound.
    lv_index = lr_element->get_index( ).
    endif.
    Instead you can directly read the node if that row is a lead selected one.
    lo_node = wd_context->get_child_node( name = 'EMP' ).  "Emp is node name
    lo_ele = lo_node->get_lead_selection( ).
    or
    lv_index = lo_node->get_lead_selection_index( ).
    where is the above code written..is it written in OnLeadSelect event of the TABLE..
    can any one help me what is the wrong.. else suggest me how to get the selected elements from a table....
    As the selection mode is Auto there is no multiple selection..hence try to use the lead selection only.
    Edited by: Lekha on Jan 3, 2012 6:47 PM

  • How can I bind a operation with a table

    Hi !
    I'm trying to bind a operation with a table, so what type of operation return ? ViewObject or a Vector? And how can i set params to these operation if my operation has some param ( getSubscriber(int iSubId, int iSubType) )
    Thank a lot for your help

    Hi,
    it depends on the release you are asking this question for. In JDeveloper 10.1.3 you can expose a method (e.g. on a session facade) that returns a Collection. The input parameters can be dragged and dropped as input fields to the page.
    The same can be done in JDeveloper 10.1.2, but here you have to prgrammatically apply the input arguments.
    Frank

  • How to get Index of a single element in a table

    Hi Gurus,
    I need to get the index number of the element in a table even if the row is not selected.
    I've already searched the forum for this but all i'm getting are selected rows in the table.  I need to get the index even if that elemen's row is not selected in the table.
    Please advise.
    Regards,

    Hi,
    Could you please specify what exactly you want to do?
    You said you want to get the index of an element even if the corresponding row is not selected. But there might be more than one element where the correponding rows are not selected. So it would be better if you could be more specific about what you want to achieve.
    Regards,
    Srilatha

  • Regarding Link to URL UI Element in a table

    Hi All,
    I am using "link to url" UI Element in a table column. I have mapped the column (i mean the "reference" property of "link to url" UI to a bapi node). Now, when I am populating the table, for some rows the bapi is not returning the url links. So, the column is getting disabled and not even showing the links for the rows which are getting the url link from the bapi.
    Is there any way to set the mapping row wise, so that the rows which have data get enabled with the link and which do not have data will be disabled.
    Also, can I make the whole table readonly, except for one column.
    Please help me in this regard.
    Regards,
    Murthy.

    Hi Armin,
    Thank you very much. The problem is solved. 10 points for you.
    Another Question.......
    Can we make the table readonly, leaving just one column to select.(that is the column with link to url). Is it possible? If so, please tell me how....
    Also, can you tell me the reason for the following exception.....
    <b>com.sap.tc.webdynpro.progmodel.context.ContextConfigurationException: DataNodeInfo(CreateTemplateComp.Zad_Bapi_Get_Template_Details_Input.Output.T_Template_Details): structure field Ad_Height not found
        at com.sap.tc.webdynpro.progmodel.context.DataAttributeInfo.init(DataAttributeInfo.java:299)
        at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initUnmappedAttributes(NodeInfo.java:687)
        at com.sap.tc.webdynpro.progmodel.context.DataNodeInfo.doInit(DataNodeInfo.java:238)
        at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:671)
        at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:674)
        ... 49 more</b>

  • Insert a new Dropdown UI-Element in a Table header

    Hello,
    i need to insert a Dropdown UI-element in a Table header, i was looking in the forum and the Web, BUT i didnt find anythinf that can help.
    please schow me how can I insert a DropDown UI-Element in the Header.
    thank you all

    Hello,
    You can normally create a table. Insert a table column and for the table column you need to give Dorpdown by Key / index as a cell editor.
    Thanks,
    Raju Bonagiri

  • Clickable UI element in a table tree as a child

    Hi experts,
    I haev created a tree in a table column. And in a treebykeytable coumn of a table, what type of cell editor can be included so that we can capture a event on a click of it.
    I.e once a child is clicked- I want to caoture the value of child clicked and navigate further.
    I dont want to use linktoaction UI element and moreover table need initialze lead selection and on using linktoaction, for clicking any child it capture only root value i.e lead selected by default.
    Thanks
    Depesh

    https://www.sdn.sap.com/irj/sdn/nw-70
    would help you
    regards
    nag

  • FileDownload UI Element in a table

    I'm tryign to use FileDownload UI Element in a table, but it seems not to work.
    I have defined a binary, an IWDAttributeInfo and a IWDModifiableBinaryType attributes in the same context node of the table.
    In wdDoInit() I wrote the following code:
    for (int i=0;i<wdContext.nodeFileTab().size();i++)
    try {
    wdContext.nodeFileTab().getFileTabElementAt(i).setAttInfo(wdContext.nodeFileTab().getNodeInfo().getAttribute(IPrivateView_pdfView.IFileTabElement.T_FILE_DOWNLOAD));
    wdContext.nodeFileTab().getFileTabElementAt(i).setBinaryType((IWDModifiableBinaryType)wdContext.nodeFileTab().getFileTabElementAt(i).getAttInfo().getModifiableSimpleType());
    wdContext.nodeFileTab().getFileTabElementAt(i).getBinaryType().setFileName(wdContext.nodeFileTab().getFileTabElementAt(i).getFilename());
    wdContext.nodeFileTab().getFileTabElementAt(i).getBinaryType().setMimeType(WDWebResourceType.PDF);
    wdContext.nodeFileTab().getFileTabElementAt(i).setTFileDownload(this.getByteArrayFromResourcePath("/sapmnt/PCD/global/config/cm/etc/pdf/"+wdContext.nodeFileTab().getFileTabElementAt(i).getFilename()));
    catch (Exception e)
    wdComponentAPI.getMessageManager().reportException(e.toString(),true);
    As result each row download the file in the last row. Is there any other way I can try?

    Hi Anita,
    you cannot set metadata at element level of a node. When you set the metadata ( example mime type or file name ) for a particular element in the node , it changes for all the element. So you are always getting the file for the last row. ( most recent set metadata ).
    Try using the inteface IWDCachedWebResource for file download.
    For each row add a button, and associate an action "DownloadFile" for it. Use the following "onAction" for the said action. 
    public void onActionDownloadFile(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionDownloadFile(ServerEvent)
        int selectedIndex = wdContext.nodeFileTab().getLeadSelection();
        IPrivateView_pdfView.IFileTabElement file = wdContext.nodeFileTab().getFileTabElementAt(selectedIndex);
        try {
         IWDCachedWebResource webResource = WDWebResource.getWebResource(
              this.
              getByteArrayFromResourcePath("/sapmnt/PCD/global/config/cm/etc/pdf/"+
              wdContext.nodeFileTab().getFileTabElementAt().getFilename(selectedIndex),
              WDWebResourceType.PDF);
         wdComponentAPI.getWindowManager().createExternalWindow(webResource.getURL(),"Download File",true).open();
       catch(Exception e) {
         // take some action
         wdComponentAPI.getMessageManager().reportException(e.toString(),true);
        //@@end
    Hope you get a solution.
    Regards
    KK.

  • How to add a new data element for existing table filed(Primary key field)

    Hi Experts,
    How to add a new data element for existing table field(Primary key field)
    For this filed ther is no foreign key relation ships and even check table.
    while activating table it is giving message like below.
    can you help any one to solve this and wil steps to add new dataelement for existing primary key filed of a table.
    Check table (NAMING SPACE/TABLE NAME(EX:/TC/VENDOR)) (username/19.02.10/03:29)           
    Primary key change not permitted for value table /TC/VENDOR
    Check on table  /TC/VENDOR resulted in errors              
    Thanks
    Ravi

    Hi,
    Easiest way is to download the table eg into an Excel table (if possible) or text table. Drop the table from the database. Build your table with the new key field. Build the database table again and fill it.
    You can do it also over the database into a new table. Drop the old one. Build the enhanced one and fill it. Afterwards drop your (temporary) table.
    Maybe there are other ways, but this works.
    Success,
    Rob

  • How to bind the data from user table into user report

    Hi All,
      Please assist me to bind the data from user table into user report. I did create an user table with data and create a user report template (using Query Print Layout). How can I display my data into report format which I created before? Any sample program or document I can refer?
    Platform: SAPB1 2005A
    Add On Language: VB.Net 2003
    Thanks.
    rgds
    ERIC

    Hi Ibai,
      Thanks for your feed back. I give you an example.
    Let say now i wanna print employee list, so i will go
    1. Main Menu -> Reports -> HR -> Employee List
    2. Choose the Selection Criteria -> OK
    3. Matrix will display (Employee List)
    4. I can print the report click on print button
    5. Printing report
    My target
    1. Main Menu -> Eric_SubMenu -> Employee List
    2. Matrix will display (Employee List)
    3. Print button
    4. Print report
    My problem
    Now I would like to use my own report format. My own report format means I wanna add on my logo or do some customization within the employee report. So how I am going to do? I only able to display the employee list in matrix. How do I create a new report format and display it.
    Thanks.
    rgds
    ERIC

  • Getting an error while fetching the data and bind it in the Tree table

    Hi All,
    I am getting an error "A navigation paths parameter object has to be defined - " while fetching the data and bind it in the Tree table.
    Please find the code and screenshot below
    var oModel = new sap.ui.model.odata.ODataModel("../../../XXXX.xsodata/", true);
    var oTable = sap.ui.getCore().byId("table");
    oTable.setModel(oModel);
    oTable.bindRows({
        path: "/Parent",
        parameters: {expand: "Children"}
    Can anyone please give me a suggestion to rectify this?
    Thanks in Advance,
    Aravindh

    Hi All,
    Please see the below code. It works fine for me.
    var oController = sap.ui.controller("member_assignment");
    var oModel = new sap.ui.model.odata.ODataModel("../../../services/XXXX.xsodata/", true);
    var Context = "/PARENT?$expand=ASSIGNEDCHILD&$select=NAME,ID,ASSIGNEDCHILD/NAME,ASSIGNEDCHILD/ID,ASSIGNEDCHILD/PARENT_ID";
    var oTable = sap.ui.getCore().byId("tblProviders");
    oModel.read(Context, null, null, true, onSuccess, onError);
    function onSuccess(oEventdata){
        var outputJson = {};
        var p = 0;
        var r = {};
        try {
            if (oEventdata.results){
                r = oEventdata.results;
        } catch(e){
            //alert('oEventdata.results failed');
        $.each(r, function(i, j) {
            outputJson[p] = {};
            outputJson[p]["NAME"] = j.NAME;
            outputJson[p]["ID"] = j.ID;
            outputJson[p]["PARENT_ID"] = j.ID;
            outputJson[p]["DELETE"] = 0;
            var m = 0;
            if (j.ASSIGNEDCHILD.results.length > 0) {
                $.each(j.ASSIGNEDCHILD.results, function(a,b) {
                outputJson[p][m] = { NAME: b.NAME,
                                     ID : b.ID,
                                     PARENT_ID: b.PARENT_ID,
                                     DELETE: 1};
                m++;
            p++;
        var oPM = new sap.ui.model.json.JSONModel();
        oPM.setData(outputJson);
        oTable.setModel(oPM);
    function onError(oEvent){
        console.log("Error on Provider Members");
    oTable.bindRows({
        path:"/"
    Regards
    Aravindh

Maybe you are looking for