0

我想自定义 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() 返回真。

自定义的datatipFormat似乎不起作用,而且我不知道如何将我想要的数据放在%s上。

恢复:

谢谢

4

2 回答 2

1

我找到了解决方案。

在这里,它把我引向了错误的方向。

我将我的 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 中。

于 2016-04-26T12:14:28.173 回答
0

你可以用<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调用覆盖以及捕获图表的鼠标悬停事件。

于 2016-04-22T09:27:05.040 回答