Измените цвет на <ice: commandLink> - PullRequest
0 голосов
/ 03 января 2012

В моей древовидной таблице много командных ссылок, которые я строю динамически, и если я хочу изменить цвет одной командной ссылки, когда я нажал на нее, все командные ссылки меняют свой цвет, я не знаю, как это сделать. измените цвет этой указанной ссылки, потому что я не знаю ее номер или идентификатор, если кто-то знает ответ, вы можете мне помочь .....

1 Ответ

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

<h:commandLink> / <ice:commandLink> сгенерирует элементы HTML <a> с href на #, которые используют JavaScript для отправки скрытой формы POST, поэтому в итоге все они имеют одинакового href, и поэтому при щелчке по одному из них все они будут отображаться как «посещенные».

Если вы действительно беспокоитесь о том, какая ссылка была нажата, значит, вы неявно беспокоитесь и о идемпотентности ссылки. В этом случае вы не должны использовать командные ссылки, а просто простые выходные ссылки, которые вы можете создать с помощью <h:outputLink> или, если вы уже используете JSF2, с <h:link>. Вы можете передавать параметры вложенным <f:param> и вызывать действия в целевом представлении (например, для подготовки какого-либо объекта модели) с помощью <managed-property> / @PostConstruct или, если вы уже находитесь в JSF2, с помощью <f:viewParam> и <f:event type="preRenderView">.

1018 * Е.Г. *

<h:dataTable value="#{bean.list}" var="item">
  <h:column>
    <h:outputLink value="edit.jsf">
      <f:param name="id" value="#{item.id}" />
      <h:outputText value="edit item #{item.id}" />
    </h:outputLink>
  </h:column>
</h:dataTable>

Таким образом, каждая ссылка будет уникальной и, следовательно, будет отображаться как «посещенная» только тогда, когда была нажата только действительная ссылка.

...