3

私はdataTable別のものを使用していdataTableます。を使用して (任意の形式で) エクスポートしようとすると、inner-dataTable 値の代わりにdataExporter" " のようなものが得られました。org.primefaces.component.datatable.DataTable@1b675ca

の限界dataExporterですか?この機能拡張を実装する必要がありdataExporterますか? 代替案はありますか?

4

2 に答える 2

2

私の外側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。これについてのアイデアはありますか?

于 2013-04-05T09:57:33.540 に答える
1

dataExporterこれは、これを行うために独自のエクスポーターを作成する必要があるという制限です。クラス (すべてのカスタム エクスポート クラスのスーパークラス)exportValueからメソッドをオーバーライドするのが最善だと思います。Exportここで、値がインスタンスではないHtmlCommandLinkか、ValueHolder単にtoString()使用されている場合、これが表示されるのはそのためです。さらに、エクスポート用のカスタム クラスをインスタンス化するアクション リスナーを作成する必要があります。

于 2013-03-28T13:18:09.363 に答える