3

我有调整窗口大小的问题。我使用来自 primefaces jsf 库的图表,当窗口调整大小时,图表不会调整大小,我想用新大小的窗口刷新图表。

你想知道如何在 p:panel 或 p:outputPanel 中捕获 resize 事件吗?

4

1 回答 1

4

也许您可以使用 HTML onresize 事件和 p:remoteCommand 组合一些操作。

HTML 中的事件将是:

<body onresize="updatechartpanel">
...
</body>

...但是 JSF 很可能不会验证上述内容,因此您可以从 JavaScript 绑定事件:

<script type="text/javascript">
window.onresize = function(event) {
    updatechartpanel();
}
</script>

其中updatechartpanel()是简化的 PrimeFaces远程命令,定义如下:

<p:remoteCommand name="updatechartpanel" update=":myform:mychartpanel" />

准确地说,没有远程执行任何操作,因为我们没有从该命令调用任何 bean操作。但它强制更新给定的组件。

尽管如此,请注意,几乎每个调整大小的像素都会调用此事件(在鼠标操作期间也是如此),因此有必要避免过于繁琐的操作,因为它在这里提出:JQuery: How to call RESIZE event only once it's FINISHED resizing ?

于 2013-11-04T18:32:03.787 回答