Skip to Main Content

APEX

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Ajax Cascading Select List Tabular

Kiem NguyenJun 10 2013 — edited Jun 18 2013

Hi experts. I'm working on a Ajax Cascading Select List Tabular using Denes Kubicek's example. When I run it, I keep getting this error:

"report error:

ORA-06550: line 1, column 139:

PL/SQL: ORA-00942: table or view does not exist

ORA-06550: line 1, column 13:

PL/SQL: SQL Statement ignored"

I checked and all the tables are fine. I wonder if any expert could help me with this. I have included the query for your reference. Thank you and I greatly appreciate your help.

SELECT apex_item.checkbox (30,

                           seq_id,

                           'onclick="highlight_row(this,' || seq_id || ')"',

                           NULL,

                           ':',

                           'f30_' || LPAD (seq_id, 4, '0')

                          ) delete_checkbox,

          apex_item.hidden (31, seq_id)

       || apex_item.select_list_from_query

                               (32,

                                c001,

                                'SELECT resource_name d, resource_onepass_ID r FROM resources'

                                || 'RIGHT JOIN super_admin ON resources.resource_onepass_ID = super_admin.super_admin_onepass',

                                   'style="width:220px" '

                                || 'onchange="f_set_casc_sel_list_item(this,'

                                || 'f33_'

                                || LPAD (seq_id, 4, '0')

                                || ')"',

                                'YES',

                                '0',

                                '- Select Resources -',

                                'f32_' || LPAD (seq_id, 4, '0'),

                                NULL,

                                'NO'

                               ) resources,

       apex_item.select_list_from_query

                               (33,

                                c002,

                           

                             'SELECT super_admin_onepass d, super_admin_ID r FROM super_admin '

                             || 'WHERE super_admin_onepass = '

                             || c001,

                             'style = "width:220px"',

                             'YES',

                             '0',

                                '- Select OnePass ID -',

                                         'f33_' || LPAD (seq_id, 4, '0'),

                                         NULL,

                                         'NO'

                                        ) OnePassID

  FROM apex_collections

WHERE collection_name = 'DEPT_EMP'

UNION ALL

SELECT     apex_item.checkbox

                          (30,

                           NULL,

                              'onclick="highlight_row(this,'

                           || TO_NUMBER (9900 + LEVEL)

                           || ')"',

                           NULL,

                           ':',

                           'f30_' || LPAD (9900 + LEVEL, 4, '0')

                          ) delete_checkbox,

              apex_item.hidden (31, NULL)

           || apex_item.select_list_from_query

                               (32,

                                0,

                                'SELECT resource_name d, resource_onepass_ID r FROM resources'

                                || 'RIGHT JOIN super_admin ON resources.resource_onepass_ID = super_admin.super_admin_onepass',

                                   'style="width:220px" '

                                || 'onchange="f_set_casc_sel_list_item(this,'

                                || 'f33_'

                                || LPAD (9900 + LEVEL, 4, '0')

                                || ')"',

                                'YES',

                                '0',

                                '- Select Resources -',

                                'f32_' || LPAD (9900 + LEVEL, 4, '0'),

                                NULL,

                                'NO'

                               ) resources,

              apex_item.select_list_from_query

                               (33,

                                NULL,

                             

                             'SELECT super_admin_onepass d, super_admin_ID r FROM super_admin '

                             || 'WHERE super_admin_onepass = '

                             || 0,

                             'style = "width:220px"',

                             'YES',

                             '0',

                                '- Select OnePass ID -',

                                'f33_'

                               || LPAD (9900 + LEVEL, 4, '0'),

                                NULL,

                                'NO'

                                ) OnePassID

      FROM DUAL

     WHERE :request = 'ADD'

CONNECT BY LEVEL = 2

Comments

Timo Hahn

How about adding a global button to the declarative component which you can use to notify the page to refresh. The general implementation can be found here http://www.oracle.com/technetwork/developer-tools/adf/learnmore/24-generic-toolbar-component-169163.pdf

You add an actionListener to the declarative component which you pass from the outside. When you need to refresh the page you call this listener from inside the declarative component.

Timo

SanjeevChauhan
Answer

If you want to refresh complete page, you can remove partialSubmit=true from button itself. That will make full page refresh. Yes its not a good practice as you are unnecessary refreshing all UI components.

If you want selectively refresh few UI components then you definitely tell ADF, which are those components. The simplest approach is individual components provide partialTrigger pointing to button.

If you don't want that then, I would suggest find a common parent component for all your tables. Set its partialTrigger pointing to button.

Thanks

Sanjeev

Marked as Answer by Robert Šajina · Sep 27 2020
Robert Šajina

Hi Timo,
Thank you for your reply.
I had a similar idea, to add a button outside of declarative component and somehow call it. Perhaps it is the best idea to move whole toolbar outside panel collection and somehow make it look that its inside panel collection

Where would that actionListener point to? would we be required to add a button to every page?

Robert

Robert Šajina

Hi SanjeevChauhan,

I have tried to remove the partialSubmit property (set it to false) but it doesn't do anything. I just need to refresh the next root component, and in our case that is <af:region>.

We are trying to avoid setting partial triggers to components as its to much work, and will require more work if something changes on declarative component.

Update:

I have tried to set partial triggers of a common parent(af: region) programmatically to id of a panel collection(panel collection is refreshed every time a button is pressed) and it works very well.
Now i just need  find a place/method that isn't called too many times, to add partialtriggers to af:region. If i manage to do it, i think we will keep this approach.

Robert

1 - 4
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Jul 16 2013
Added on Jun 10 2013
4 comments
282 views