2017-08-22 21 views
0

sap.m.Tree itemsのカスタムカラーを設定したいと思います。私は例hereを入れているSAPUI5の背景色を設定する方法sap.m.StandardTreeItem?

snip 
    sap.m.StandardTreeItem.extend('MySuperDuperTreeItem', { 
    metadata: { 
    properties: { 
     status: 'string' 
    } 
    },  
    onAfterRendering: function() { 
    if (sap.m.StandardTreeItem.prototype.onAfterRendering) { 
     sap.m.StandardTreeItem.prototype.onAfterRendering.apply(this, arguments); 
    } 
    //var a = getItem(); NOT WORKING 
    this.$().find('div').each(function() { 
     if ($(this).hasClass('sapMCbBg')) { 
     $(this).addClass("myPurple"); 
     } 
    }); 
    }, 
    renderer:{} 

}); 

sap.m.Listに他の例を見ると、私はsap.m.StandardTreeItemonAfterRenderingを実装しました。

JSBinリンクからチェックボックスにカスタムカラーが表示されていますが、アイテムのタイトルに基づいて色を設定したいと思います。また、ツリー項目の詳細ボタンが展開および折りたたまれて正しく表示されません。

色を変更する方法はありますか? onAfterRendering関数でsap.m.StandardTreeItemのメンバー(getTitle()など)にアクセスできないのはなぜですか?

+0

"this.getTitle()" - onAfterRendering。詳細ボタンの「不適切な表示」とはどういう意味ですか? –

答えて

0

this.getTitle()onAfterRenderingメソッドを使用してタイトルを取得します。そして、そのタイトルに基づいて、あなたは

onAfterRendering: function() { 
     sap.m.StandardTreeItem.prototype.onAfterRendering.apply(this, arguments); 
     var title = this.getTitle(); 
     this.$().find('div').each(function() { 
      if ($(this).hasClass('sapMCbBg')) { 
       if (jQuery.sap.startsWith(title, "A-Node")) { 
       $(this).addClass("myPurple"); 
       } else if (jQuery.sap.startsWith(title, "B-Node")) { 
       $(this).addClass("myYellow"); 
       } 
      } 
     }); 
    } 

以下のようにタイトルに基づいて、あなたのスタイルクラスを追加することができますし、ツリー項目の詳細ボタンについての事は適切に拡張し、崩壊表示されていない、あなたはほんの少しあなたのコードを変更する必要がありますここで

var oStandardTreeItem = new MySuperDuperTreeItem({ 
    title: "{text}", 
    type: sap.m.ListType.Detail 
}); 
oTree.bindItems("/", oStandardTreeItem); 
oTree.expandToLevel(3); 
oTree.setMode(sap.m.ListMode.MultiSelect); 
var oPage = new sap.m.Page("TreeTest", { 
    title : "Test Page for sap.m.Tree", 
    content : [oTree] 
}); 

以下のようにビットは、タイトルに基づいて異なる色でチェックボックスをレンダリングlinkです。

+0

私の例を修正し、追加情報をありがとう! –

+0

私は別の関連する質問があります。選択したツリーアイテムの青色を防止するにはどうすればよいですか? –

+0

[link] [https://jsbin.com/sisijazuso/edit?html,output#jade]の例を作成しました。アイテムを手動で選択したときに、必要に応じて機能しますが、アイテムが作成時に選択されている場合は、行の色分けはそのまま残ります。 –

関連する問題