#jsp #datatable #primefaces
#jsp #datatable #первичные пространства
Вопрос:
Я использую Primefaces и JSP, на моей странице есть 2 независимых портлета, один из которых расположен над другим, и у каждого есть datatable. Количество столбцов различно для каждой таблицы (3 для первой и 10 для второй)
При загрузке страницы одна или несколько записей из верхней таблицы переходят в нижнюю таблицу, скрывая и перезаписывая записи, принадлежащие последней. Это происходит случайным образом, а не при каждой загрузке страницы.
Идентификаторы файлов данных разные.
Могу ли я что-нибудь сделать, чтобы решить эту проблему?
Ответ №1:
После глубокой отладки кода я обнаружил, что при создании datatable элементы пользовательского интерфейса Yahoo «yui-rec» не создавались и обрабатывались постепенно, т.Е. yui-rec0, yui-rec1, …, yui-recN из первой таблицы, yui-rec (N 1), …. yui-rec(N M) из второй таблицы. Вместо этого некоторые из первых N элементов уже были найдены как существующие, а затем перемещены во вторую таблицу.
Проблема была решена путем переопределения идентификаторов yui-rec внутри JSP каждого портлета:
<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>