我需要在按键时重新加载JSF组件,我有以下代码
<script>
document.onkeypress=teclaPulsada
function teclaPulsada()
{
var teclaASCII=event.keyCode
var teclaCHAR=String.fromCharCode(teclaASCII)
if (teclaASCII==49 )
{
document.getElementById("formularioImagen").setAttribute("value", "TiffBean.getImagen()")
}
else if ( teclaASCII==50)
{
alert("disminuir")
}
}
</script>
<h:form id="formularioImagen">
<p:graphicImage id="imagen" value="#{TiffBean.getImagen()}" width="1000" height="1500" border="5" cache="FALSE" >
</p:graphicImage>
</h:form>
当我运行图片时没有重新加载
答案 0 :(得分:1)
您需要“重新渲染”graphicImage组件或其父级之一。一种简单的方法是添加
<p:commandButton id="hiddenBtn" update="formularioImagen:imagen" style="visibility: hidden"/>
到表单并选择Javascript并在单击键时单击按钮
答案 1 :(得分:1)
您可以使用p:remoteCommand
。
<p:remoteCommand name="refreshImage" process="@this" update="formularioImagen:imagen"/>
在您的javascript代码中,您可以执行以下操作:
if (teclaASCII == 49)
{
refreshImage();
}
答案 2 :(得分:0)
使用Primefaces hotkey。它是专门为此而建的。在你的情况下:
<h:form id="formularioImagen">
<p:graphicImage id="imagen" value="#{TiffBean.getImagen()}" width="1000" height="1500" border="5" cache="FALSE" >
</p:graphicImage>
<p:hotkey bind="ctrl+shift+s" update="imagen"/>
</h:form>