2013-11-22 43 views
8

此問題,每一行的尖叫聲是的JSF 2.0 + Primefaces 2.x: Tooltip for datatable row重複,但因爲這個老問題有沒有我的工作/令人滿意的解決方案,而且也沒有辦法(?),以引起別人的注意回去吧,我打開這個新。工具提示在數據表

這很簡單: 我有一個dataTable(使用JSF標準或primefaces),我想補充一個不同的提示每行(不只是在這一個領域!)。

我試過到目前爲止:

<pe:tooltip value="This is row number #{rowIndex}" 
    for="@(#table1 tr[role=row][data-ri=#{rowIndex}])" 
    atPosition="top center" myPosition="bottom center" 
    shared="true" /> 

其中#table1是我的數據表的ID。這讓我想起了this。從JSF 2.0 + Primefaces 2.x: Tooltip for datatable row

而且這兩種解決方案:工作,但只爲一個字段/ ID,而不是整個行的第一個解決方案。第二種解決方案對我來說根本不起作用。

我敢100%保證兩個 - primefaces & primefaces擴展 - 正在對我來說,我測試了它。

+0

參見:https://stackoverflow.com/questions/46116670/tooltip-in-the-column-header-對的一primefaces-數據表 – Andrew

回答

6

我已經做了一些試驗,這種方法完美的作品:

<p:dataTable var="entry" value="#{....}" styleClass="myTable" rowIndex="rowIndex"> 
    <p:column headerText="Header 1"> 
     <h:outputText value="#{entry.value1}" /> 
    </p:column> 

    <p:column headerText="Header 2"> 
     <h:outputText value="#{entry.value2}" /> 
     <pe:tooltip value="This is row number #{rowIndex}" forSelector=".myTable tr[role=row][data-ri=#{rowIndex}]" 
      shared="true" atPosition="top center" myPosition="bottom center" showDelay="500" /> 
    </p:column> 
</p:dataTable> 

注意的是,爲了給數據裏屬性被放置在數據表中的行,你需要添加的屬性的rowIndex(rowIndex位置= 「rowIndex位置」)。

它還

<p:tooltip for="@(.myTable tr[role=row][data-ri=#{rowIndex}])" value="This is row number #{rowIndex}" /> 
+0

這工作得很好:選擇器適用於全行的,所以不必爲每個列定義。標準用例應該是例如值= 「entry.tooltiptext」。 這應該被標記爲正確的答案。 – alfonx

+0

我試圖做同樣的事情,但我得到'不能將類型java.lang.String類型的rowIndex轉換爲int'。有任何想法嗎? – NeplatnyUdaj

+1

將它更改爲rowIndexVar – giaffa86

3

工作你也可以做到這一點,而無需使用primefaces擴展。這個示例代碼適用於primefaces 5.2。的dataTable attibute是rowIndexVar和不rowIndex位置如在上面的例子中:在5.2 primefaces在p 注意。

<h:form id="idform"> 

<p:dataTable var="komp" 
    id="idDataTable" 
    value="#{kompselect.listKomponenten}" 
    rowIndexVar="rowIndex" 
    selection="#{kompselect.selectedKomponente}" 
    rowKey="#{komp.name}"> 
    <p:column> 
     <h:outputText id="otSelKomponente" value="#{komp.name}" /> 
     <p:tooltip rendered="#{komp.displayToolTip}" 
       for="idForm:iddataTable:#{rowIndex}:otSelKomponente" 
       value="this is my Tooltip"/> 

    </p:column> 
</p:dataTable> 

2

本commment https://stackoverflow.com/a/13327334/4851983(thaks BalusC) 讓primefaces自動鏈接的對象。我可以顯示工具提示的文本區域Primefaces 3.5,如顯示下面

<p:dataTable id="commentsTable" 
     value="#{historyReq.commentsFromReq}" var="comment" 
     emptyMessage="#{localeMsg.roles_table_empty}" 
     rows="10"                                        
     styleClass="myTable" 
     rowIndexVar="rowIndex"> 

<p:column headerText="HEADER A"> 
    <h:outputText value="#{bean.valorA}" /> 
</p:column> 

<p:column headerText="#{HEADER B}">             
     <p:inputTextarea id="txtArea" cols="45" rows="1" 
          value="#{bean.valorB}" 
          readonly="true" 
          disabled="false" 
          autoResize="false"> 
      <f:converter converterId="commentsConverter" /> 
     </p:inputTextarea>                         
     <p:tooltip for="txtArea" value="This is row number #{rowIndex}" />    
</p:column>  

+0

如果我沒有犯錯,他的示例是一個靜態的示例,而您試圖將ID放在一個會反覆重複的組件上。所以在每一行你都有一個帶有相同ID的文本區域,這是行不通的。 –