2017-01-09 6 views
1

XMLビューを使用してSAPUI5プロジェクトでビューを作成しています。私は列に使用するファクトリ関数を実装しようとしていた& sap.ui.Tableコントロールの行。列のファクトリは正常に動作しているようですが、何らかの理由で行のファクトリが実行されることはありません。sap.ui.Tableコントロールの行と列をバインドするためにファクトリ関数を使用できますか?

閲覧:

<Table 
    id="dataPreviewTbl" 
    class="data-preview" 
    columns="{path: 'oModel>/columns', factory: '.colFactory'}" 
    rows="{path: 'oModel>/rows', factory: '.rowFactory'}" > 
</Table> 

コントローラー:

colFactory: function(sId, oContext) { 
    var sColumnId = oContext.getObject().name; 
    var multiLabels = []; 
    multiLabels.push(
     new sap.m.Label({ 
      text: sColumnId, 
      design: "Bold" 
     }) 
    ); 
    multiLabels.push(
     new sap.m.Label({ 
      text: dataType 
     }) 
    ); 
    return new sap.ui.table.Column({ 
     multiLabels: multiLabels, 
     sortProperty: sColumnId, 
     filterProperty: sColumnId, 
     flexible: false 
    }); 
}, 

rowFactory: function(sId, oContext) { 
    var cells = []; 
    for (let i = 0; i < this.colCount; i++) { 
     cells.push(new sap.m.Text({ 
      "text": "{oModel>" + i + "}" 
     })); 
    } 

    return new sap.ui.table.Row({ 
     "cells": cells 
    }); 
} 

Iは、特定の要件ごとに行と列の両方の結合ダイナミックを実装しています。誰かがここで私の提案や助けをしてもらえますか?欠けているか間違っているかを考えて頭を浮かべることができます。ありがとう。

答えて

1

申し訳ありません。膨大な量のデータ(sap.m.Tableは私の経験では、Chromeであってもうまく行かなかった)を処理するために、sap.ui.table.Tableのファクトリ関数の使用はintentionally left outです。 sap.ui.table.Tableは、ユーザがスクロールしたときにDOM要素を再利用するため、ファクトリ関数の動作とは異なります。

実際にファクトリ関数を使用する必要がある場合は、代わりにsap.m.Tableを実装する以外の方法はありません(パフォーマンスは低下しますが、特にクライアントがIEに頼っている場合は特にそうです)。 そうでない場合は、列コントロールにtemplatesを定義します。

関連する問題