jsp - 覆盖两个不同 portlet 的数据表之间的记录
问题描述
我使用 Primefaces 和 JSP,在我的页面内有 2 个独立的 portlet,一个位于另一个之上,每个都有一个数据表。每个表的列数不同(第一个为 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>
推荐阅读
- gatsby - Gatsby 由于“originalFactory.call”而不再开发未定义
- elasticsearch - 过滤字段值或不存在
- angular - 更改 ion-checkbox 的默认值
- websphere - 如何访问 IBM Cloud Object Storage 实例以在 Watson Studio 中使用?
- python - 制作更快的视频捕获opencv
- reactjs - 如何在 Material UI 的下拉列表中设置默认值?
- java - 我正在尝试创建程序来加密和解密文件 | 爪哇
- c++ - 如何在 Qt 中保存图像而无需手动添加 .jpeg 或 .png 扩展名?
- apache-spark - 在 pyspark 数据框中找到相似的变量值
- c# - Visual Studio IntelliSense 无法正常工作