Ana*_*oly 4 jsf el primefaces jsf-2
这是代码:
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete()"/>
Run Code Online (Sandbox Code Playgroud)
eventReized调用由EventResizeBehavior哪个扩展而来AjaxBehaviorEvent,它包含一些属性.我可以检查内部<p:ajax....>调用它的值并将结果传递给oncomplete="resizeComplete(result)"
这样的事情
<p:ajax event="eventResized" process="@this calendar" listener="#{bean.eventResized}" oncomplete="resizeComplete(#{eventResized.id == 0})"/>
Run Code Online (Sandbox Code Playgroud)
PrimeFaces不支持它.oncomplete属性中的任何EL表达式在该HTML文档的呈现响应期间立即被评估,而不是在关联的ajax调用的未完成期间.基本上,oncomplete属性生成的JavaScript代码包含页面加载期间的旧值.
您最好的选择是RequestContext#addCallbackParam()将属性添加到范围内args可用的PrimeFaces特定对象oncomplete.
RequestContext.getCurrentInstance().addCallbackParam("result", eventResized.getId() == 0);
Run Code Online (Sandbox Code Playgroud)
<p:ajax ... oncomplete="resizeComplete(args.result)" />
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用RequestContext#execute()而不是以oncomplete编程方式指示PrimeFaces在完成ajax请求时执行一段JavaScript.
RequestContext.getCurrentInstance().execute("resizeComplete(" + (eventResized.getId() == 0) + ")");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2236 次 |
| 最近记录: |