0

私はとを持って<p:dialog><p:dataTable>ます<p:commandButton>。テーブルに追加<p:columm selectionMode="multiple">すると、ボタンはアクションリスナーメソッドを呼び出しません。その列がなくても、正常に機能します。これはどのように発生し、どうすれば解決できますか?

これが私の見解です:

<p:dialog id="CategoriasShowPadre" header="#{msgs['Categorias.BusquedaDeCategorias']}" widgetVar="CategoriasShowPadre" modal="true">
    <p:dataTable id="DTBusquedaCategoriasPadre" widgetVar="posiblesTablaP" var="BcatP" value="#{agregarCategorias.categoriasPosibles}"   
        emptyMessage="#{msgs['Categoria.SinRegistros']}" rowKey="#{BcatP.nombre}" selection="#{agregarCategorias.categoriasPosiblesSelecionadas}">
        <p:column selectionMode="multiple" style="width:18px" />     
        <p:column id="nombreCol" filterBy="#{BcatP.nombre}" filterMatchMode="contains">
            <f:facet name="header">  
                <h:outputText value="#{msgs['Categoria.ColunmnaNombre']}" />  
            </f:facet>  
            <h:outputText value="#{BcatP.nombre}" />  
        </p:column>  
        <p:column>  
            <f:facet name="header">  
                <h:outputText value="#{msgs['Categoria.ColunmnaDescripcion']}" />  
            </f:facet>  
            <h:outputText value="#{BcatP.descripcion}" />  
        </p:column>  
    </p:dataTable>    

    <p:commandButton id="AnadiraPadre" value="#{msgs['Categoria.Boton.AgregarCategorias']}" 
        immediate="true" actionListener="#{agregarCategorias.selecionadosElementosPadres()}" 
        onclick="CategoriasShowPadre.hide();" />
</p:dialog>  

これがバッキングBeanです。

@ManagedBean
@RequestScoped
public class AgregarCategorias { 

    private List<Categorias> CategoriasPosibles;
    private List<Categorias> CategoriasPosiblesSelecionadas;   

    @PostConstruct
    private void MiPostConstructor() {
        this.CategoriasPosibles = // ...
    }

    public List<Categorias> getCategoriasPosiblesSelecionadas() {
        return CategoriasPosiblesSelecionadas;
    }

    public void setCategoriasPosiblesSelecionadas(List<Categorias> CategoriasPosiblesSelecionadas) {
        this.CategoriasPosiblesSelecionadas = CategoriasPosiblesSelecionadas;
    }

    public List<Categorias> getCategoriasPosibles() {
        return CategoriasPosibles;
    }

    public void setCategoriasPosibles(List<Categorias> CategoriasPosibles) {
        this.CategoriasPosibles = CategoriasPosibles;
    }

    public void selecionadosElementosPadres(ActionEvent evento) {
         // my method code
    }

}
4

1 に答える 1

1

データテーブルの「selection」属性は、ドメインオブジェクトの配列を参照する必要があります。だからのために変更private List<Categoria> CategoriasPosiblesSelecionadasしますprivate Categoria[] CategoriasPosiblesSelecionadas

于 2012-05-31T12:38:56.730 に答える