【问题标题】:Primefaces autocomplete completeMethod with extra parameter带有额外参数的 Primefaces 自动完成完成方法
【发布时间】:2022-07-07 07:03:42
【问题描述】:

我在使用 completeMethod 的 dataTable 内有 autoComplete。是否可以将行对象传递给 completeMethod bean 实现,或者以某种方式让 bean 知道我当前正在处理哪个行对象?谢谢。

伪代码:

<p:dataTable var="selection" value="#{bean.selections}">
    <p:column headerText="Selection">
        <p:autoComplete id="dd" dropdown="true" value="#{bean.country}"
                        completeMethod="#{bean.completeText(selection)}"> 
            <p:ajax event="itemSelect"/>
        </p:autoComplete>
    </p:column>
</p:dataTable>

【问题讨论】:

    标签: jsf primefaces autocomplete


    【解决方案1】:

    橡皮鸭效应,抱歉这么快就回答了我自己的问题。我已将我的 completeMethod 移动到选择对象,在我的情况下,它包含我需要的所有附加参数。希望有人觉得它有用。

    <p:dataTable var="selection" value="#{bean.selections}">
        <p:column headerText="Selection">
            <p:autoComplete id="dd" dropdown="true" value="#{bean.country}"
                            completeMethod="#{selection.completeText}">
                <p:ajax event="itemSelect"/>
            </p:autoComplete>
        </p:column>
    </p:dataTable>
    

    【讨论】:

      【解决方案2】:

      您可以将命令/ajax 组件中的属性传递给您的操作/侦听器方法,例如:

      <p:autoComplete>
          <f:attribute name="foo" value="#{bean.foo}"/>`
      </p:autoComplete>
      

      在您的 bean 方法中,您可以访问以下属性:

      FacesContext = FacesContext.getCurrentInstance();
      final UIComponent component = UIComponent.getCurrentComponent(context);
      
      Object foo = component.getAttributes().get("foo");
      

      根据您的要求,您可以直接传递行 var 实例,也可以只传递“id / rowkey”并手动查找。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 1970-01-01
        • 2012-11-25
        • 2015-12-15
        • 2014-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多