0

リストアイテムを含むリストボックスがあります。ユーザーによって選択されたリストアイテムは、新しく作成されたテーブルの列になるため、リストアイテムのプロパティ「テキスト」を列のプロパティ「テキスト」にバインドする必要があります。プロパティ「visibility」と「sortOrder」についても同じことが言えます。listitem のプロパティ "visibility" と "order" が見つかりませんでした。JSONmodel を介してそれらを同じものにバインドします。それについてもっと経験がある人はいますか?2 番目の質問: これはバインドの試行ですが、動作しません。ロジックを確認してください。元。リストボックス + listItem の:

var listboxChooseColumns = new sap.ui.commons.ListBox("chooseColumns", {

                                                       allowMultiSelect: true,
                                                       items:
                                                                      [
                                                     new sap.ui.core.ListItem({
                                                                                          text: "Export number"     })]})

listitem の prop"text" を JSONmodel にバインドしようとした方法は次のとおりです。

sap.ui.getCore().getModel().setProperty("{/visibleColumns/" + listItem.text +"}",  true);

テーブル列の例を次に示します。

   table.addColumn(new sap.ui.table.Column({
    label : new sap.ui.commons.Label( {
        text : "{/visibleColumns/columnName}"
             })}));

ここにJSONモデルがあります:

 sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel({
  columns: [
                { columnName: "Ëxport Number",
                visible: true,
                columnorder: 1
            },
   {
                columnName: "Functional Location",
                visible: true,
                columnorder: 1
              }]  
 }));

しかし、それでもどこかで私は間違っていました。何か案は ?

4

1 に答える 1

2

可視性と順序も決定できると思います。表示される列は ListBox で選択された項目になり、順序は ListBox に表示される順序になります。

したがって、リストボックスの内容を変更すると (アイテムの追加/削除、リストボックスの順序の変更)、モデルも変更されます。

テーブルの列のテンプレート要素を作成すると、「bindColumns」メソッドを簡単に使用できるようになります。

var oColumnsTemplate = new sap.ui.table.Column({
    label : new sap.ui.commons.Label().bindProperty("text", "columnName")
});
table.bindColumns("/columns", oColumnTemplate);

選択された ListItems は、正しい順序で列を含むテーブルをレンダリングします。

于 2014-02-11T12:45:32.153 に答える