2017-01-04 9 views
0

Я использую простой шрифт и пытаюсь сделать его интерактивным без использования javascript. Может кто-нибудь мне помочь?Как сделать столбцы поверхностей, которые можно обрабатывать datatable clickable

Вот мой код. Нажимая строки, я хочу вызвать метод.

<p:dataTable id="examplej" class="table couple-table" rowKey="#{info.id}" selectionMode="single" selection="#{bb.detail(info)}" rowIndexVar="rowIndex" 
        var="info" value="#{bb.coupleList}" rows="10" paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
        rowsPerPageTemplate="5,10,15" paginator="true" emptyMessage="お探しの地域では見つかりませんでした"> 
    <p:column class="column-couple"> 
       <h:outputText value="#{info.addressOne}" /> 
      </p:column> 

Это метод, который я хочу вызвать, щелкнув строки.

   <p:commandLink action="#{bb.detail(info)}"/> 

Когда я запускаю свой webapp, я получаю эту ошибку сейчас.

javax.el.PropertyNotFoundException: класс 'java.lang.String' не имеет свойства 'id'.

Заранее спасибо.

+0

а как насчет rowSelect event ?? '' –

ответ

0

Это может быть сделано через selection и selectionMode атрибутами в <p:datatable> компонентом. В выборе вы можете указать действие в бэкбоне, что бы вы хотели сделать с выбранным объектом. Это четко задокументировано и представлено на primefaces showcase site

+0

Я сделал это, но я узнал, что мне нужно добавить rowKey и сделал, но он не работает. – anonyrabbit

+0

исключение показывает, что информационный объект не имеет идентификатора, потому что это объект String. Атрибут rowkey используется для идентификации выбранных строк. поэтому он должен быть привязан к полю объекта, которое представлено в таблице данных. Я не знаю, что такое объект информации в вашем случае, однако, конечно, он не имеет свойства id –