2013-03-18 13 views
6

Mam tabelę danych:Jak uzyskać wartości wprowadzone w polu Filtered DataTable of Primefaces?

<p:dataTable id="pDataTableListaRegistros" 
      var="registro" 
      value="#{arquivoBean.listaRegistros}" 
      paginator="true" 
      rows="20" 
      filteredValue="#{arquivoBean.filteredListaRegistros}" 
      styleClass="tabelaCentralizada"> 

Chciałbym uzyskać wartości wpisane w polach filtracyjnych „kod”, „Data zrobić registro” i „usuario” do manipulowania w fasoli podkładowej.

enter image description here

+0

Jaki jest dokładnie Twój konkretny problem? Jest to pokazane w każdym przykładzie Hello World w tabeli danych JSF. Twój kod jest również niekompletny. Nie pokazałeś, w jaki sposób wiążesz wartości komponentów wejściowych z modelem i jak próbujesz uzyskać do nich dostęp w metodzie akcji. – BalusC

+0

Wiem, aby uzyskać wartość wprowadzoną w . Jest to możliwe dzięki metodom get i set backingBean. Jednak nie wiem, aby uzyskać wartość wprowadzoną w polu Filtranowa kolumna: fenix

+0

Nie powinieneś tego robić w metodzie getter/setter. Powinni pozostać nietknięci i nie robić nic innego, jak tylko wrócić i ustawić nieruchomość. Powinieneś uzyskać dostęp do 'listyRegistros' w metodzie akcji. JSF już ustawił tam wartości. – BalusC

Odpowiedz

6

można uzyskać wartość filtra z DataTable przez

  1. uzyskać odwołanie do DataTable z widoku poprzez wiązanie lub chodzenia drzewa. Wiążąc, musisz:

    <p:dataTable binding="#{arquivoBean.theDataTable}" id="pDataTableListaRegistros" var="registro" value="#{arquivoBean.listaRegistros}" paginator="true" rows="20" filteredValue="#{arquivoBean.filteredListaRegistros}" styleClass="tabelaCentralizada"/> 
    

    I w podkładowej Fasola:

    DataTable theDataTable = new DataTable(); 
        //getter and setter 
    
  2. z obowiązujących

    Map<String, String> theFilterValues = theDataTable.getFilters(); //This returns a map of column-filterText mapping. 
    
+1

Jak uzyskać z Javascript? – rashidnk

+0

@rashidnk Dlaczego potrzebujesz ich w JavaScript? Nie możesz po prostu zapytać DOM? –

1

Możesz dodać mapę do fasoli , takie jak:

private Map<String, Serializable> filterValues = new HashMap<>(); 

i wiążą wartości na mapie za pomocą atrybutu p:columnfilterValue, na przykład:

<p:column headerText="Name" 
      sortBy="#{item.name}" 
      filterBy="#{item.name}" 
      filterMatchMode="contains" 
      filterValue="#{yourBean.filterValues['name']}"> 
    <h:outputText value="#{item.name}" /> 
</p:column> 

Zaletą tego rozwiązania jest to, że wartości zostaną zachowane po aktualizacji tabeli.

Powiązane problemy