【问题标题】:Overwriting of records between datatables of two differerent portlets覆盖两个不同 portlet 的数据表之间的记录
【发布时间】:2020-10-06 09:29:51
【问题描述】:

我使用 Primefaces 和 JSP,在我的页面中有 2 个独立的 portlet,一个位于另一个之上,每个都有一个数据表。每个表的列数不同(第一个为 3,第二个为 10)

当页面加载时,上表中的一条或多条记录会下降到下表,从而隐藏和覆盖属于后者的记录。这是随机发生的,而不是在每次页面加载时。

Datables 的 ID 不同。

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: jsp datatable primefaces


    【解决方案1】:

    经过深度代码调试,我发现在创建datatable时,Yahoo的UI“yui-rec”元素没有被创建和逐步处理,即yui-rec0, yui-rec1, ..., yui-recN第一张桌子,yui-rec(N+1), .... yui-rec(N+M) 来自第二张桌子。取而代之的是,前 N 个元素中的一些元素已经被发现存在,然后移到了第二个表中。

    通过在每个 portlet 的 JSP 中重新定义 yui-rec ID 解决了这个问题:

    <script type="text/javascript">
    updateID = function() {
        var table1 = document.getElementById('view<portlet:namespace/>:table1')
    
        Array.from(table1.getElementsByTagName('tr')).forEach(function(item) {
        if (item.id.includes('yui-rec')) {
             item.id=item.id+'_'
        }})
    }
    
    <script>
    

    【讨论】:

      猜你喜欢
      • 2019-10-02
      • 2022-10-07
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2016-08-04
      • 1970-01-01
      相关资源
      最近更新 更多