Ho un problema con p:dataTable
ed escluso una colonna dalla selezione di una singola riga.Primefaces: esclude la colonna dalla selezione di righe in p: dataTable
Ho 4 colonne nel mio dataTable. I primi 3 sono necessari per visualizzare fileId, fileName e uploadDate. Nella quarta colonna c'è un pulsante di comando per ogni riga che avvia l'azione di elaborazione dei file. Ma c'è anche la selezione delle righe (con azione Ajax sull'evento) che si sposta nella pagina dei dettagli del file. Ora, quando clicco su un punto qualsiasi della riga (incluso il pulsante), viene visualizzata la pagina dei dettagli.
Ecco il mio codice corrente:
<h:form>
<p:dataTable id="billingFiles" value="#{billingFiles}"
var="billingFile"
rowKey="#{billingFile.billingFile.idBillingFile}"
filteredValue="#{billingService.filteredBillingFileDataModels}"
selectionMode="single" paginator="true" rows="10">
<p:ajax event="rowSelect" listener="#{billingService.selectBillingFileRow}" />
<p:column sortBy="#{billingFile.id}"
filterBy="#{billingFile.id}" id="idFile"
headerText="#{msg['billing.file.id']}"
filterMatchMode="contains">
<h:outputText value="#{billingFile.id}" />
</p:column>
<p:column sortBy="#{billingFile.uploadDate}"
filterBy="#{billingFile.uploadDate}" id="uploadDate"
headerText="#{msg['billing.file.upload_date']}"
filterMatchMode="contains">
<h:outputText value="#{billingFile.uploadDate}" />
</p:column>
<p:column sortBy="#{billingFile.fileName}"
filterBy="#{billingFile.fileName}" id="fileName"
headerText="#{msg['billing.file.file_name']}"
filterMatchMode="contains">
<h:outputText value="#{billingFile.fileName}" />
</p:column>
<p:column id="loadBillingFile">
<p:commandButton id="loadBillingFileButton"
rendered="#{billingFile.fileStatus.equals('UPLOADED')}"
value="#{msg['billing.load_billing_file']}"
action="#{billingService.loadBillingFile(billingFile.billingFile)}"
update=":form" />
</p:column>
</p:dataTable>
</h:form>
e non v'è il metodo che naviga su file pagina dei dettagli:
public void selectBillingFileRow(SelectEvent event) {
BillingFileDataModel billingFileDataModel = (BillingFileDataModel) event.getObject();
if (billingFileDataModel != null) {
selectedBillingFile = billingFileDAO.findBillingFileById(billingFileDataModel.getBillingFile().getIdBillingFile());
FacesContext.getCurrentInstance().getExternalContext()
.getRequestMap().put(JsfView.EVENT_KEY, "viewBillingFile");
}
}
Esiste un modo per escludere colonna con il pulsante dalla selezione di fila? Ne ho bisogno solo per iniziare l'elaborazione del file, senza spostarmi verso un'altra pagina.
Che file stai elaborando, è un db? –
Inizia l'elaborazione del file txt con Spring Batch. – Rozart
Hai un evento rowSelect Primefaces Ajax sul dataTable che esegue il seguente listener ogni volta che fai clic su una riga: "" # {billingService.selectBillingFileRow} "' Vorrei cercare nel codice questo metodo per vedere se sta reindirizzando o inoltrando il pagina. –