私はdataTable
別のものを使用していdataTable
ます。を使用して (任意の形式で) エクスポートしようとすると、inner-dataTable 値の代わりにdataExporter
" " のようなものが得られました。org.primefaces.component.datatable.DataTable@1b675ca
の限界dataExporter
ですか?この機能拡張を実装する必要がありdataExporter
ますか? 代替案はありますか?
私はdataTable
別のものを使用していdataTable
ます。を使用して (任意の形式で) エクスポートしようとすると、inner-dataTable 値の代わりにdataExporter
" " のようなものが得られました。org.primefaces.component.datatable.DataTable@1b675ca
の限界dataExporter
ですか?この機能拡張を実装する必要がありdataExporter
ますか? 代替案はありますか?
私の外側DataTable
には列が1つしかなく、各行はサブDataTable
であるため、PDFExporterを次のように拡張しました。
@Override
protected String exportValue(FacesContext context, UIComponent component) {
if (component instanceof DataTable) {
DataTable tab = (DataTable) component;
try {
document.add(exportPDFTable(context, tab, false, false, "UTF-8"));
} catch (DocumentException ex) {
Logger.getLogger(ExtendedPDFExporter.class.getName()).log(Level.SEVERE, null, ex);
}
return "";
else {
return super.exportValue(context, component);
}
}
wheredocument
はメソッドによって作成されexport
ます。
問題は、各サブDataTable
が動的列を使用し、エクスポートされた PDF のそれらの列について、DataTable
各サブで複製された最初のサブの値を取得したことですDataTable
。これについてのアイデアはありますか?
dataExporter
これは、これを行うために独自のエクスポーターを作成する必要があるという制限です。クラス (すべてのカスタム エクスポート クラスのスーパークラス)exportValue
からメソッドをオーバーライドするのが最善だと思います。Export
ここで、値がインスタンスではないHtmlCommandLink
か、ValueHolder
単にtoString()
使用されている場合、これが表示されるのはそのためです。さらに、エクスポート用のカスタム クラスをインスタンス化するアクション リスナーを作成する必要があります。