Редактировать с помощью Javascript ячейку таблицы данных Primefaces - PullRequest
1 голос
/ 29 января 2012

У меня есть нередактируемая таблица данных, созданная с помощью PrimeFaces.Первоначально таблица заполняется значениями, полученными через метод получения Бина:

<p:dataTable var="lndClient" value="#{clientBean.model}" rowKey="#{lndClient.stringId}">

После загрузки таблицы мне нужно обновить некоторые ячейки с помощью Javascript.Причина в том, что я использую cometD , шаблон технологии Ajax Push, который использует Javascript-JQuery на стороне клиента.

Я знаю, что могу обновить ячейку, используя что-то вроде

$('td#id').html("value"); 

но моя проблема в том, что я понятия не имею, каков идентификатор моей клетки (ей).Глядя на сгенерированный html, я вижу, что строки:

<tr data-ri="1" class="ui-widget-content ui-datatable-odd"><td><div class="ui-dt-c"><a id="centerTabView:accordion:j_idt18:j_idt19:1:j_idt22" ...>
...
<tr data-ri="2" class="ui-widget-content ui-datatable-even"><td><div class="ui-dt-c"><a id="centerTabView:accordion:j_idt18:j_idt19:2:j_idt22" ...>

Действительно, идентификатор строки есть, хотя внутри тега td.И другие столбцы:

<td><div class="ui-dt-c">...</div></td>

Итак, мой вопрос: как я могу идентифицировать ячейку в таблице данных PrimeFaces?

1 Ответ

1 голос
/ 29 января 2012

Если вы можете ссылаться на ячейки по индексу столбца и идентификатору строки, вы можете использовать rowStyleClass атрибут p:dataTable.

Например, если вы установите его как rowStyleClass="#{lndClient.stringId}", вы сможете ссылаться на 3-й столбец строки с помощью stringId xyz, например, $('tr.xyz td:first-child+td+td') - я уверен, что вы можете выбрать лучший селектор.

...