2017-01-13 3 views
0

У меня есть DataTable с колонкой:PrimeFaces DataTable метод называется много раз

<p:dataTable value="#{cc.attrs.bean.model}" 
... 
    <p:column style="width:#{bean.getWidth('colDate', 55)}px;" 

кажется, что метод bean.getWidth вызывается для каждой строки в таблице. Таким образом, имея 100 строк, метод называется сто раз. Я ожидал, что метод будет вызван только один раз.

Я не прав?

+0

Для «ширины» это часто. Если вы помните, что это для столбца, но если вы хотите использовать его для стилизации отдельных комбинаций столбцов строки ** (= ячейка), тогда весь стиль должен оцениваться для каждой строки, и он должен быть вызван за строку. PrimeFaces не может знать, как вы хотите его использовать, поэтому его нужно часто называть. Ответ с кешем - это способ пойти – Kukeltje

ответ

0

вы можете сохранить результат в GetWidth в управляемом атрибуте фасоли затем использовать это в стиле колонке

1

Нет, это правильно. можно кэшировать значение в ваш бобе или использование JSTL

<c:set var="width" value="#{bean.getWidth('colDate', 55)}" /> 

<p:dataTable value="#{cc.attrs.bean.model}" 
... 
<p:column style="width:#{width}px;" 

Вы можете найти более подробную информацию здесь https://stackoverflow.com/tags/jstl/info. Не забудьте пространство имен.

+0

Привет, я просто попытался: '' и ' matthias

+0

Ошибка? Исключение? – jklee

 Смежные вопросы

  • Нет связанных вопросов^_^