Oracle APEX如何在没有页面提交的情况下填充级联选择列表

时间:2018-02-21 15:06:57

标签: oracle-apex

我有一个带有一些选择列表的APEX页面,使用集合来保存和刷新页面。 “系统”选择列表取决于“品牌”选择的值。我的页面按照我的要求运行,但它需要在选择“Brand”值后提交页面,以便正确填充“System”lov。

我正在尝试这样做,以便在更改或选择“Brand”值时,立即更改“System”lov而无需提交页面。我一直在阅读,似乎你需要使用jQuery和AJAX回调,但我无法理解并取得任何进展。

希望有人可以帮助我。我当然是网络编码的新手。

补充:我的本地APEX版本是5.0.3。

https://apex.oracle.com/pls/apex/f?p=4550

Workspace: UNCLE_BUCK_WS 
User: developer1 
Pwd: developer1 
Application 83513 - Tooth Selector 
Page 5: Page that works using submit page 
Page 6: Page I started trying to use jQuery, but did not get very far

enter image description here

添加了: 手动表格形式没有级联LOV。请参阅下面的我的区域定义希望有人仍然可以帮助,也许复制我的页面并进行必要的更改。

select apex_item.select_list_from_query(p_idx => 1,  
                                        p_value => n001,
                                        p_query => 'SELECT tooth_number display_value, tooth_number return_value FROM psp_teeth WHERE tooth_numbering_method = :P5_TOOTH_NUMBER_METHOD
                                                    ORDER BY tooth_number',
                                        p_null_text => '- Choose Tooth -')
       || apex_item.hidden(p_idx => 50, p_value => seq_id) Tooth_Number  
, apex_item.select_list_from_lov(p_idx => 10, p_value => c001, p_lov => 'BRAND', p_null_text => '- Choose Brand -') brand  
, apex_item.select_list_from_lov(p_idx => 12, p_value => c002, p_lov => 'TYPE', p_null_text => '- Choose Type -') type  
, apex_item.select_list (p_idx => 14,  
                         p_value => c003,
                         p_list_values => CASE c001
                                          WHEN 'BRAND_A' THEN 'SYSTEM_A1,SYSTEM_A2'
                                          WHEN 'BRAND_B' THEN 'SYSTEM_B1,SYSTEM_B2'
                                          END,
                         p_show_null => 'YES',                         
                         p_null_text => '- Choose System -') system  
, apex_item.checkbox2(p_idx => 16, p_value => seq_id, p_checked_values => CASE c004 WHEN '1' THEN seq_id END) delete_row
from apex_collections  
where collection_name = 'TEMPCOL'

1 个答案:

答案 0 :(得分:0)

不要使用表格形式,它们是陈旧的!使用交互式网格,它以声明方式支持级联LOV(您不需要编写任何代码,只需指定BRAND列中的列TYPE级联): enter image description here

请参阅我的应用程序中的第9页,我在其中创建了一个(我没有打扰创建主区域)。我对TYPE的LOV定义有点麻烦,你可以改进它(即回到之前的“动态静态”LOV)。