2

<f:ajax render>是否可以在 jQuery中触发 jsf ?

例如这样的:

/* if component Y changes
    trigger render event on component Y */

$("#source_compoment").bind("change", function(e) {
    $("#target_component").trigger("render");
});

或者换句话说,jQuery 中是否有“f:ajax render”的等价物?

4

1 回答 1

4

是的,做一个隐藏按钮

<h:commandButton id="myHiddenButtonID" value="RenderSomething" style="display:none">
    <f:ajax render="target_component"></f:ajax>
</h:commandButton>

并从 js 中单击它

$("#myHiddenButtonID").click();

在您的特定情况下,它将如下所示:

$("#source_compoment").bind("change", function(e) {
    $("#myHiddenButtonID").click();
});

顺便说一句,在 jQuery 中没有“f:ajax render”的等效项,您只需使用 jquery 单击隐藏的 JSF 按钮。


编辑

如果第三方 JSF 库使用相关,您可以使用

Primefaces RemoteCommand -(使用更新属性)

或者

Richfaces/a4j:jsFunction - (使用 reRender 属性)

于 2012-05-22T08:20:37.860 回答