2015-09-29 4 views
1

У меня есть primefaces (5,1) DataTable с некоторыми кнопками в rightermost колонки:Сделать возможным открыть р: кнопку в новом окне, Ctrl + щелчок или Middleclick как ссылки

  <p:column headerText="Actions" style="width: 60px"> 
       <p:button id="uploadButton" title="upload files" 
        icon="fa fa-edit" outcome="uploadFilesToVersion"> 
        <f:param name="versionId" value="#{version.id}" /> 
       </p:button> 

      <!-- other buttons come here--> 

      </p:column> 

отмечает, что «версия» является локальная (циклическая) переменная sourrounding p: dataTable и uploadFilesToVersion.xhtml - это представление для пользователя для загрузки файлов в «версию» с идентификатором id = version.id)

Обратите внимание, что кнопка doe не вызывает никакой компонент метод, я просто использовал элемент кнопки p: button из своего стиля. Теперь я хочу дать пользователю возможность открыть результат кнопки (т. Е. URL) в новой вкладке/окне браузера. Это было бы полезно, потому что я хочу, чтобы состояние фильтра dataTable сохранялось в то же время (его потеряли, когда пользователь нажимает «назад» в браузере).

Как это можно достичь?

EDIT: Конечно, можно было бы использовать некоторые CSS, чтобы подражать появление кнопки, но я хотел бы избежать этого:

  <p:column headerText="Actions" style="width: 60px"> 

       <p:link id="uploadButton" title="upload files" 
       outcome="uploadFilesToVersion" 
       styleClass="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only"> 
       <span class="ui-button-icon-left ui-icon ui-c fa fa-edit"></span>    
       <span class="ui-button-text ui-c">ui-button</span> 
       <f:param name="versionId" value="#{version.id}" /> 
      </p:link> 

     <!-- other buttons come here--> 

     </p:column> 
+0

«хотел» прошло уже давно. Так ты передумал? – Kukeltje

+0

Да, на основании ответа BalusC Я «передумал», так сказать –

+0

, поэтому редактирование - это дополнительный ответ? Затем опубликуйте его как таковой или отредактируйте ответ BalusC и добавьте его туда, чтобы также была передана парам (а также, пожалуйста, напишите информацию о версии PF) – Kukeltje

ответ

3

Это не представляется возможным как <p:button> борту используется JavaScript и не используя <a href> , Поведение, которое вы ищете, возможно только с помощью <a href>.

Ваш лучший выбор - использовать <h|p:link>, который генерирует <a> и стиль, чтобы он выглядел как кнопка.

<h:link ... styleClass="ui-button ui-state-default ui-corner-all"> 
    <i class="fa fa-edit" /> 
</h:link> 

Wrap при необходимости в tagfile уменьшить шаблонный.

<my:linkButton ... icon="fa fa-edit" />