Primefaces 5.2:自定义图表数据提示

Primefaces 5.2 : customize charts datatip

我想自定义 Primefaces 5.2 图表中的数据提示。 所以这意味着,我想更改 datatipFormat 及其上的内容。

它试过这个:

--- XHTML ---

<p:chart type="line" 
         model="#{lineChartController.lineModel}"
         title="#{lineChartController.lineModel.title}"
         showDatatip="#{lineChartController.lineModel.showDatatip}"
         datatipFormat="#{lineChartController.datatipFormat}"
         ... />

--- Java ---

public String getDatatipFormat()
{
    return "<span style=\"display:none;\">%s</span><span>%s</span>";
}

isShowDatatip() returns 正确。

自定义的datatipFormat好像不行,而且我不知道怎么把我想要的数据放到%s上。

继续:

谢谢

你可以使用 <p:overlayPanel> 这个

    <p:overlayPanel id="myPanel" for="myLbl" showEvent="mouseover" hideEvent="mouseout">
           <p:panelGrid columns="2">  
                <f:facet name="header">#{controller. getDate()}</f:facet>                   
                 <h:outputLabel value="#{controller.dataItem.Col1}" />             
                 <h:outputLabel value="#{controller.dataItem.Col2}" />    

           </p:panelGrid>  
  </p:overlayPanel>  

并将此叠加层绑定到图表中所需点的鼠标悬停上,您可以从 javascript 调用叠加层,也可以捕获图表的鼠标悬停事件。

我找到了解决方案。

Here, 把我引错方向了

我将我的 Java 代码放在 LineChartController 上,我的 showDatatip 指向一个 LineChartModel ...,它包含一个 setDatatipFormat(String) 方法。

所以我用它:

LineChartModel lineModel = new LineChartModel();
...
lineModel.setDatatipFormat("<table><thead><tr><th>Date</th></tr></thead><tbody><td>%s</td><td>%s EUR</td></tbody></table>");

而且我仍然不知道如何将我想要的数据放入 %s。