【问题标题】:StandardTreeItem change font of the title?StandardTreeItem 更改标题的字体?
【发布时间】:2018-05-28 08:30:54
【问题描述】:

我有一个多层次的sap.m.Tree,我真的想根据一些输入数据更改sap.m.StandardTreeItem 的字体或项目颜色。

例如,如果字符串输入等于“1”,那么第一个节点应该得到黄色文本等。

是否有任何方便的方式来访问节点,因为我似乎只能获得顶级节点

var treeItems = oTree.getItems(); 

我想我可以使用 jQuery 搜索类 'sapMCbBg',但它看起来相当不吸引人。如果有人有更好的想法,我将不胜感激。

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    您可以创建一个自定义控件来处理这个问题。这是一个例子

    <!DOCTYPE HTML>
    <html>
    
      <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta charset="UTF-8">
        <title>Example</title>
        <style>
          .node1 {
            color: red;
          }
        </style>
        <script id="sap-ui-bootstrap" type="text/javascript"
                src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
                data-sap-ui-theme="sap_bluecrystal"
                data-sap-ui-libs="sap.m,sap.ui.table"
                data-sap-ui-xx-bindingSyntax="complex"
                data-sap-ui-resourceroots='{"myControls": "./"}'>
        </script>
    
        <script id="oView" type="sapui5/xmlview">
        <mvc:View height="100%" controllerName="myView.Template"
          xmlns="sap.m" 
          xmlns:core="sap.ui.core"
          xmlns:mvc="sap.ui.core.mvc"
          xmlns:my="myControls">
    
        <Tree items="{/}">
          <items>
            <my:StandardTreeItem title="{text}" />
          </items>
        </Tree>
        </mvc:View>
        </script>
    
        <script>
          jQuery.sap.declare("myControls.StandardTreeItem");
    
          sap.ui.define([
            'jquery.sap.global',
            'sap/ui/core/mvc/Controller',
            'sap/ui/model/json/JSONModel',
            'sap/m/StandardTreeItem'
          ], function(jQuery, Controller, JSONModel, StandardTreeItem) {
            "use strict";
    
            var oData = [{
              text: "Node1",
              nodes: [{
                text: "Node1-1"
              }]
            }, {
              text: "Node2",
              nodes: [{
                text: "Node2-1"
              }]
            }];
    
            StandardTreeItem.extend("myControls.StandardTreeItem", {
              renderer: {},
              onAfterRendering: function() {
                if (StandardTreeItem.prototype.onAfterRendering) {
                  StandardTreeItem.prototype.onAfterRendering.apply(this, null);
                }
                var text = this.getBindingContext().getObject().text;
                if (text.indexOf('Node1') === 0) {
                  this.$().find(".sapMLIBContent").addClass("node1");
                }
              }
            });
    
    
            var oController = Controller.extend("myView.Template", {
              onInit: function(oEvent) {
                this.getView().setModel(new JSONModel(oData));
              },
            });
    
            return oController;
          });
    
          var oView = sap.ui.xmlview({
            viewContent: jQuery('#oView').html()
          });
    
          oView.placeAt('content');
    
        </script>
      </head>
    
      <body class="sapUiBody sapUiSizeCompact" role="application">
        <div id="content"></div>
      </body>
    
    </html>
    

    http://jsbin.com/zijajas/edit?html,js,output

    【讨论】:

      猜你喜欢
      • 2011-05-02
      • 2015-04-04
      • 2012-05-25
      • 2015-10-04
      • 1970-01-01
      • 2019-02-05
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多