Belajar Java Web - Cara Menambahkan Filter di DataTable Primefaces - Java Community

Belajar Java Web - Cara Menambahkan Filter di DataTable Primefaces

Dalam membuat sebuah DataTable sering kali melakukan pencarian suatu data tertentu, jika kita melakukan pencarian per baris pada tabel tentunya ini akan membutuhkan waktu yang lama, terlebih lagi jika dalam tabel tersebut terdapat ribuan baris. Untuk itulah kita membutuhkan suatu alat atau tools yang dapat kita pergunakan untuk melakukan pencarian. Filter memungkinkan kita untuk melakukan pencarian kata atau keyword yang terdapat dalam sebuah tabel, sehingga baris DataTable yang ditampilkan hanya yang sesuai dengan keyword yang telah kita masukkan tersebut.

Cara-Menambahka-Filter-di-DataTable-Primefaces
<h:form>
     <h1>DAFTAR BARANG</h1>
     <p:dataTable var="barang" value="#{daftarBarangMBean.listBarang}"
                     widgetVar="tblBarang" filteredValue="#{daftarBarangMBean.listFilterBarang}"
                     rows="10" paginator="true" paginatorPosition="bottom"
                     paginatorTemplate="{CurrentPageReport} {FirstPageLink} 
                     {PreviousPageLink} {PageLinks} {NextPageLink} 
                     {LastPageLink} {RowsPerPageDropdown}"
                     rowsPerPageTemplate="5,10,15">

          <f:facet name="header">
               <p:outputPanel style="text-align: right">
                    <h:outputText value="PENCARIAN  " />
                    <p:inputText id="globalFilter" onkeyup="PF('tblBarang').filter()" 
                                 style="width:250px; text-align: right" 
                                 placeholder="Masukkan Kata"/>
                    </p:outputPanel>
          </f:facet>

          <p:column headerText="Kode Barang" filterBy="#{barang.kodebarang}" 
                       filterMatchMode="contains">
               <h:outputText value="#{barang.kodebarang}" />
          </p:column>

          <p:column headerText="Nama Barang" filterBy="#{barang.namabarang}" 
                       filterMatchMode="contains">
               <h:outputText value="#{barang.namabarang}" />
          </p:column>

          <p:column headerText="No. Register" filterBy="#{barang.register}" 
                       filterMatchMode="contains">
               <h:outputText value="#{barang.register}" />
          </p:column>

          <p:column headerText="Jumlah" filterBy="#{barang.jumlah}" 
                       filterMatchMode="contains">
               <h:outputText value="#{barang.jumlah}" />
          </p:column>

          <p:column headerText="Harga" filterBy="#{barang.hargabarang}" 
                       filterMatchMode="contains">
               <div style="text-align: right">
                    <h:outputText value="#{barang.hargabarang}">
                         <f:convertNumber currencySymbol="Rp. " 
                              type="currency" locale="id">
                    </h:outputText>
               </div>
          </p:column>
     </p:dataTable>
</h:form>
@ManagedBean(name = "daftarBarangMBean")
@ViewScoped
public class DaftarBarangMBean implements Serializable{
    private List<DaftarBarang> listBarang;
    private List<DaftarBarang> listFilterBarang;
    
    @PostConstruct
    public void init(){
        listBarang = getListDaftarBarang();
    }
    
    private List<DaftarBarang> getListDaftarBarang(){
        List<DaftarBarang> list = new ArrayList<>();
        list.add(new DaftarBarang(1, "1.3.2.02.02.01", "Laptop", "0001", 5, 7530000));
        list.add(new DaftarBarang(1, "1.3.2.02.02.02", "PC Komputer", "0006", 3, 4530000));
        list.add(new DaftarBarang(1, "1.3.2.02.02.03", "Notebook", "0010", 10, 3500000));
        list.add(new DaftarBarang(1, "1.3.5.02.03.01", "Buku (Belajar Java Bagi Pemula)", "0020", 20, 95000));
        list.add(new DaftarBarang(1, "1.3.2.02.04.01", "Meja Kantor", "0001", 4, 1270000));
        list.add(new DaftarBarang(1, "1.3.2.02.04.05", "Filling Cabinet", "0004", 2, 3000000));
        list.add(new DaftarBarang(1, "1.3.2.02.04.03", "Lemari Kaca", "0020", 10, 6000000));
        list.add(new DaftarBarang(1, "1.3.5.02.03.08", "Globe", "0012", 10, 15000));
        list.add(new DaftarBarang(1, "1.3.5.02.02.03", "EBook (Belajar Primefaces)", "0001", 5, 230000));
        list.add(new DaftarBarang(1, "1.3.2.02.02.05", "Server", "0006", 3, 9380000));
        list.add(new DaftarBarang(1, "1.3.2.02.02.03", "Notebook", "0007", 7, 3420000));
        list.add(new DaftarBarang(1, "1.3.2.02.03.09", "HeadSet", "0005", 20, 295000));
        return list;
    }

    public List<DaftarBarang> getListBarang() {
        return listBarang;
    }

    public void setListBarang(List<DaftarBarang> listBarang) {
        this.listBarang = listBarang;
    }
    
    public List<DaftarBarang> getListFilterBarang() {
        return listFilterBarang;
    }

    public void setListFilterBarang(List<DaftarBarang> listFilterBarang) {
        this.listFilterBarang= listFilterBarang;
    }
    
}
public class DaftarBarang implements Serializable{
    private long idBarang;
    private String kodebarang;
    private String namabarang;
    private String register;
    private int jumlah;
    private double hargabarang;

    public DaftarBarang() {
    }

    public DaftarBarang(long idBarang, String kodebarang, String namabarang, 
            String register, int jumlah, double hargabarang) {
        this.idBarang = idBarang;
        this.kodebarang = kodebarang;
        this.namabarang = namabarang;
        this.register = register;
        this.jumlah = jumlah;
        this.hargabarang = hargabarang;
    }

    public long getIdBarang() {
        return idBarang;
    }

    public void setIdBarang(long idBarang) {
        this.idBarang = idBarang;
    }

    public String getKodebarang() {
        return kodebarang;
    }

    public void setKodebarang(String kodebarang) {
        this.kodebarang = kodebarang;
    }

    public String getNamabarang() {
        return namabarang;
    }

    public void setNamabarang(String namabarang) {
        this.namabarang = namabarang;
    }

    public String getRegister() {
        return register;
    }

    public void setRegister(String register) {
        this.register = register;
    }

    public int getJumlah() {
        return jumlah;
    }

    public void setJumlah(int jumlah) {
        this.jumlah = jumlah;
    }

    public double getHargabarang() {
        return hargabarang;
    }

    public void setHargabarang(double hargabarang) {
        this.hargabarang = hargabarang;
    }
    
}

Sekian tutorial cara menambahkan filter di DataTable Primefaces, semoga bermanfaat.

Subscribe to receive free email updates:

0 Response to "Belajar Java Web - Cara Menambahkan Filter di DataTable Primefaces"

Posting Komentar