Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 覆盖两个不同Portlet的数据表之间的记录_Jsp_Datatable_Primefaces - Fatal编程技术网

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

Jsp 覆盖两个不同Portlet的数据表之间的记录,jsp,datatable,primefaces,Jsp,Datatable,Primefaces,我使用Primefaces和JSP,在我的页面中有两个独立的Portlet,一个位于另一个之上,每个Portlet都有一个datatable。每个表的列数不同(第一个表3列,第二个表10列) 当页面加载时,上表中的一条或多条记录下放到下表,从而隐藏和覆盖属于下表的记录。这是随机发生的,不是每次加载页面时都会发生 数据表的ID是不同的 我能做些什么来解决这个问题吗?经过深入的代码调试后,我发现在创建datatable时,Yahoo的UI“yui rec”元素没有被逐步创建和处理,即yui-rec0

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

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

数据表的ID是不同的


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

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

updateID=函数(){
var table1=document.getElementById('视图:table1')
数组.from(表1.getElementsByTagName('tr')).forEach(函数(项){
如果(项目id包括('yui-rec')){
item.id=item.id+“”
}})
}