Primefaces Subtable ile Custom Exporter Kullanımı

Primefaces  ile listemizi sıralı olarak göstermek için kullanılan yöntem datatable bileşinidir. Bu bileşen çok marifetli ve farklı kullanımlarını Primefaces Showcase sitesinden incelemek mümkün. Bu yazıda Primefaces Showcase’de de yer alan Datatable bölümünde olan Subtable bileşinine ve Subtable kullanarak bir çıktı almak istersek ne yapmak gerekir bunu anlatmaya çalışacağım.

Subtable bileşinini genellikle bir listenizin içerisinde bir liste var ve bunu bir üst listeye bağlı olarak listelemek istenildiğinde kullanılmaktadır. Örnek vermek gerekirse bir iller listeniz var bu iller listeniz içerisinde o ile bağlı yaşayan kişilerin listesi bulunmakta. Hem il ve o ile bağlı kişileri göstermek için çeşitli yollar olsa da en kullanılabilir ve pratik olanı Subtable’dir.

 

Subtable Primefaces Örnek

Subtable Primefaces Örnek

Subtable görünümü Datatable bileşeninden farksız ancak liste içerisindeki onlarca listeyi göstermemiz mümkün olmaktadır.

Subtable kullanımı yukarıdaki gibi gelelim asıl meselemize. Datatable’dan Pdf, Excel ya da CVS çıktı almak için yine Primefaces’in DataExporter bileşinini kullanarak işlemi tamamlamaktayız. Ancak burada bir sorun var! Primefaces 6.0.x sürümü ve öncesine kadar eğer Subtable bileşini kulanıyorsanız DataExporter’dan bir export işlemi gerçekleştiremiyorsunuz. Yani çalışmıyor!

Niye çalışmadığını bilmiyorum ancak bunun yine Primefaces tarafından bir çözümü yapılmış. PrimeFaces Extensions kullanarak ( İlgili Yazı : PrimeFaces Extensions Nedir? ) olurduğunuz Subtable’den export işlemi yapılabilmekte.

Kullanımı;

diyerek yukarıda oluşturduğumuz Subtable içerisindeki bilgileri excel olarak çıktı alabilmekteyiz. Bu işlemi yapmamıza rağmen bir sonuç elde edemiyorsanız sorun exporterController.customExporter classını bulamamasındandır. Ben bu sorunu yaşadım. Bu sorunu çözmek için kendim bu clası projeme eklemek zorunda kaldım.

Bu işlemleri yaparak subtable’dan export işlemini kolayca yapabilirsiniz.

 

Diğer Primefaces Yazıları

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir