启用/禁用命令按钮primefaces

时间:2014-06-20 20:42:33

标签: jsf primefaces

我的页面有一个搜索按钮,可以为输入的地址带来费率。 在研究之后,我希望能够启用打印按钮。

                <p:commandButton value="#{msg['btn-search']}"
                    styleClass="btn btn-primary" onclick="codeAddress()" />
                <p:remoteCommand actionListener="#{searchBean.addMarker()}"
                    name="consultaValor"
                    update="bandeira1, bandeira2,bandeira1Value, bandeira2Value,origemInfo,addressInfo"/>
                <p:commandButton id="print" value="Imprimir" styleClass="btn btn-primary" rendered="#{searchBean.print.booleanValue()}" >
                    <p:printer target="information" />
                </p:commandButton>

我尝试使用render属性来接收我的searchBean的布尔值,但是没有人可以帮助我吗?

private Boolean print = false;

public Boolean getPrint() {
    return print;
}

public void setPrint(Boolean print) {
    this.print = print;
}
public void addMarker() {
    Marker marker = new Marker(new LatLng(lat, lng),address);
    emptyModel.addOverlay(marker);           
    result = true;
    String wktFilter = "POINT("+getLng()+" "+getLat()+")";

    findByWKT(wktFilter);

    print = true;

}

addMarker方法由搜索按钮调用,然后它变为布尔打印,但不起作用。

1 个答案:

答案 0 :(得分:2)

您的支持bean基本上没问题,您只需要修改前端页面。

就像@mabi,@ rion18和@Jaqen H'ghar所说,你应该:

  1. 删除booleanValue()
  2. 使用remoteCommand的{​​{1}}致电onclick
  3. commandButton上添加update="print"
  4. 使用p:remoteCommand代替disabled。(我在此使用rendered。)
  5. 所以你的前端看起来像:

    display

    请注意

    1. 我删除了代码中的内容,因为我不知道代码中的含义(例如<p:commandButton value="btn-search" styleClass="btn btn-primary" /> <p:commandButton value="remote" onclick="consultaValor()"/> <p:remoteCommand actionListener="#{searchBean.addMarker()}" name="consultaValor" update="print"/> <p:commandButton id="print" value="Imprimir" styleClass="btn btn-primary" style="display:#{searchBean.print?'inline':'none'}" > </p:commandButton> ),您应该将其添加回来如果你使用我在这里发布的代码。
    2. 我添加了bandeira1,bandeira2,bandeira1Value,bandeira2Value,origemInfo,addressInfo...,以便调用p:commandButton如果要删除我添加的按钮,请确保调用remoteCommand