2017-03-01 10 views
0

だから私は数字があると言うことができます19356私はそれが1 | 9 | 3 | 5 | 6のように見えるようにしたいとまた、すべての下線を引いてください。番号を壊してパイプと下線を付け加えることなくこれを可能にしますか?また、それは数字の間の単なる線のようなパイプである必要はありません。パイプとアンダーライン番号

+0

これらの個々の数字文字はスパンで囲まれていますか?コード例が役に立ちますが、フォーマットされていない数字の文字列があれば、javascriptが必要になります。 –

+0

Yerは、oDataモデルからの文字列になります。私は境界線を持つ単一のテキストに分割することができますか、またはjavascriptを使用してaを追加することができます。本当にそれをしたいとは思わない。 – J0rd4n500

+0

さて、おそらく私よりも知識のある人がいるかもしれませんが、書式なしの文字列内の個々の文字を対象とする創造的な方法は考えられません。あなたは最初か最後の文字をターゲットにすることができますが、それはそれです。 –

答えて

0

解決方法があります。 sap.m.FormattedTextを拡張し、必要な機能を以下のように処理することで実現できます。

私は以下のように名前SpecialFormattedTextSpecialFormattedTextRendererで2つのファイルを作成します。

これは、数値で作業したいので、FormattedTextを拡張し、int型の数値という1つのクラスを持つので、intデータ型を選択します。私たちが必要とFormattedTextのhtmlTextに設定し、で元の値を維持するよう

sap.ui.define(["sap/m/FormattedText"], function (FormattedText) { 
    "use strict"; 
    return FormattedText.extend("SpecialFormattedText", { 
     metadata : { 
      properties : { 
       number : { 
        type : "int", defaultValue : null 
       } 
      } 
     }, 
     setNumber : function(iMumber) { 
      this.setProperty("number", iMumber, true); 
      this.setProperty("htmlText", this._getUpdatedNumber(iMumber), true); 
     }, 
     _getUpdatedNumber : function(iMumber) { 
      return "<U>"+iMumber.toString().match(/.{1}/g).join('|')+"</U>"; 
     } 
    }); 
}); 

は、ここで私は入力を変換します。そして、getNumberメソッドを使って元の値を得ることができます。SpecialFormattedTextクラスオブジェクト。

次に重要なのは、SpecialFormattedTextRendererという名前の他のクラスにレンダラーを作成することです。このクラスでは、次のようにsap.m.FormattedTextRendererクラスレンダラーメソッドを呼び出します。

sap.ui.define(["sap/m/FormattedTextRenderer"], function (FormattedTextRenderer) { 
    "use strict"; 
    var SpecialFormattedTextRenderer = {}; 
    SpecialFormattedTextRenderer.render = function (oRM, oControl) { 
     oRM.write("<div"); 
     FormattedTextRenderer.render(oRM, oControl); 
     oRM.write("</div>"); 
    }; 
    return SpecialFormattedTextRenderer; 
},true); 
関連する問題