Перезапись записей между таблицами данных двух разных портлетов

#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>