为什么模态对话框中的内容被截断了?

Why is the content in a modal dialog being truncated?

我正在学习一本书的教程,但遇到了一个我无法解决的问题。希望这里有人可以提供帮助。

本质上有一个模态对话框 - 向导对话框 - 具有动态 pl/sql 内容,由于某种原因被截断了。我想知道这是否是正常行为:

数据库发送的行多于 Product/Price table 中显示的那 3 行。如果我修改代码以在一行后停止渲染行:

这很容易解释吗?构建所有这些东西的代码是这样的;我不希望任何人详细阅读它,但我只是想知道浏览器是否应该自动插入垂直滚动条:

[删除了原来冗长的代码]

谢谢

编辑: 我已经删除了页面上的内联 CSS,并将动态 PL/SQL 减少到这个,但它仍在发生:

declare
  l_customer_id varchar2(30) := :P11_CUSTOMER_ID;
begin
    -- display products
    sys.htp.p('<div class="Products" >');
    sys.htp.p('<table width="100%" cellspacing="0" cellpadding="0" border="0">
    <thead>
    <tr><th class="left">Product</th><th>Price</th><th></th></tr>
    </thead>
    <tbody>');
    for c1 in (select product_id, product_name,  list_price, 'Add to Cart' add_to_order from demo_product_info where product_avail = 'Y' union all 
               select product_id, product_name,  list_price, 'Add to Cart' add_to_order from demo_product_info where product_avail = 'Y'order by product_name) loop
        sys.htp.p('<tr><td class="left">'||sys.htf.escape_sc(c1.product_name)||'</td>
        <td>'||trim(to_char(c1.list_price,'999G999G990D00')) || '</td>
        <td><a ><span>Add<i class="iR"></i></span></a></td>
        </tr>');
    end loop;
    sys.htp.p('</tbody></table>');
    sys.htp.p('</div>');
    sys.htp.p('<b>DONE</b>');
end;

sql 查询返回了 11 行;我将它们加倍到 22,所以结果 table 中应该有 22 行,但这是输出:

我不知道它是否有帮助,但是...

您是否在页面设置中设置了模态页面的高度?

尝试将此 css 放入您的页面设置中:

*将这个数字 (400) 更改为模态框的高度或接近该高度的数值。

.CustomerInfo {
    height: 400px;
    overflow: auto !important;
}

我不知道为什么会这样,我认为这个问题与此有关 属性 https://www.w3schools.com/cssref/pr_pos_overflow.asp


编辑

我创建这个页面是为了测试:第 25 页是模态页,第 23 页有一个 link 到模态页。

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

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

workspace: stackquestions
user: test
pwd: test
app: 145797
wizard modal page: 25

请问您的模态页面和上面这个页面的页面设置或区域设置是否有差异?或者您可以尝试在此工作区中重现此问题吗?

向导模式页面有一个区域有这个 pl/sql,和你的一样,但是有假数据。

declare

  v_count NUMBER := 0;
  v_max_count NUMBER := 30;
begin
    -- display products
    sys.htp.p('<div class="Products" >');
    sys.htp.p('<table width="100%" cellspacing="0" cellpadding="0" border="0">
    <thead>
    <tr><th class="left">Product</th><th>Price</th><th></th></tr>
    </thead>
    <tbody>');
    loop
        sys.htp.p('<tr><td class="left">'||'product - ' || v_count ||'</td>
        <td>'|| '50 - ' || v_count || '</td>
        <td><a ><span>Add<i class="iR"></i></span></a></td>
        </tr>');

    v_count := v_count + 1;

    EXIT WHEN v_count >= v_max_count; 

    end loop;

    sys.htp.p('</tbody></table>');
    sys.htp.p('</div>');
    sys.htp.p('<b>DONE</b>');
end;