覆盖两个不同Portlet的数据表之间的记录



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

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

Datables的ID不同。

我能做些什么来解决这个问题吗?

经过深入的代码调试,我发现在创建数据表时,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>

最新更新