【问题标题】:Select data Checkbox - DataTable - Primefaces选择数据复选框 - DataTable - Primefaces
【发布时间】:2013-10-29 19:44:17
【问题描述】:

如何获取dataTable的选中数据?我使用这种方式是因为它是寄存器的“编辑”。

    <p:dataTable id="dataTable" var="valor" style="width:100%; text-align:center" 
      value="#{beanMensagemXContato.dataModelMsg}"  
      selection="#{beanMensagemXContato.selectedMensagemAssociada}" 
      paginator="true" rows="6" >

       <f:facet name="header">  
           Mensagens  
       </f:facet>   
       <p:column  style="width:5%">
           <p:selectBooleanCheckbox value="#{valor.associada}" >       
                <p:ajax process="@form" event="valueChange"  listener="#   {beanMensagemXContato.adicionarMensagemContato}">                
                <f:param name="messageSelecionada" value="#{beanMensagemXContato.msgAssociada}" />
                </p:ajax>
           </p:selectBooleanCheckbox>
       </p:column>   
...
</p:dataTable>

我会选择 Bean 的数据作为事件 SelectEvent:

public void adicionarMensagemContato (SelectEvent event){

    Mensagem mensagem = ((MensagemAssociada) event.getObject()).getMensagem();
    MensagemAssociada mensagemAssociada = (MensagemAssociada) event.getObject();

...

}

但我无法通过事件 ValueChange 获取数据。我已经尝试通过标签 selectionMode = "multiple" 使用 SelectEvent,设法获取当时选择的数据,之前选择并从数据库中读取的数据不会出现,仅在 xhtml 中上面列出的方式时使用。

感谢您的帮助。

【问题讨论】:

    标签: java jsf jsf-2 primefaces datatable


    【解决方案1】:

    选择存储在您的 bean 字段中:

    selection="#{beanMensagemXContato.selectedMensagemAssociada}" 
    

    如果 adicionarMensagemContato 方法位于同一个 bean 中,您可以毫无问题地访问您的选择:

    public void adicionarMensagemContato (SelectEvent event){
        doSomething(this.selectedMensagemAssociada);
    }
    

    另一种方法是使用 f:setPropertyActionListener - 它允许您将当前行中的元素存储在一个 bean 字段中(下面的示例显示了如何访问通过按钮单击调用的当前元素):

    <p:dataTable var="objectFromCurrentRow" ...>
      ...
      <p:column ...>
        <p:button ... action=#{beanMensagemXContato.performAnActionOnCurrentElement} ...>
          <f:setPropertyActionListener value="#{objectFromCurrentRow}" target="#{beanMensagemXContato.selectedMensagemAssociada}" />
        </p:button>
        ...
    

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 2012-08-30
      • 1970-01-01
      • 2014-10-14
      • 2017-10-02
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多