2017-06-09 14 views
-1

私はSAPUI5で新しく、ボタンオブジェクトに別の要素を追加したいと思います。しかし、それはサポートしていません。ボタンの中に要素を追加するにはどうすればよいですか? ここに私のコードです。SAPUI5 Buttonコンテンツの問題

<Button> 
          <FlexBox 
           width="100%" 
           direction="Row" 
           alignItems="Center" 
           justifyContent="Start"> 
           <items> 
            <f:Avatar 
              src="./resources/images/dashboard/Todo128.png" 
              displaySize="M"> 
            </f:Avatar> 
            <VBox class="gridItemContent"> 
             <Text 
              class="gridItemContentTitle" 
              text="Todo"/> 
              <Button 
               text="Todo Oluştur" 
               icon="sap-icon://add-coursebook" 
               type="Transparent"> 
              </Button> 
            </VBox> 
           </items> 
          </FlexBox> 
        </Button> 

エラーを示します。私はどこでミスをしているのか分かりません。 FlexBoxオブジェクトをButtonのコンテンツに追加したいと思います。それは可能ですか? ご意見ありがとうございました

+0

あなたが行うことができないボタンは、子供が、私はそれを行うために使用するコンポーネント – santhosh

+0

を制御追加する任意の凝集を持っていないため?私は途中でそのコンポーネントのイベントを押す必要があります。一般的なクリック可能なコンテナ要素の内部にコンポーネントを追加できるかどうか。どうもありがとう。 – MLElyakan

答えて

0

UI5コントロールは、集約(子コントロールのコレクション、詳細はAggregation in SAP UI5をご覧ください)があります。一般に、コントロールの集合の1つは、「デフォルト」のものである(例えばitemssap.m.Table)。既定のものはSDKに(default)と記載されています。

あなたがコントロールを配置しているか、あなたはこれを省略することが可能な集合の名前を指定するか、彼らはデフォルトの集計に配置されます(例えば、この sap.m.Tableサンプルを見ていXMLビューで

itemscolumns集約のテーブルは明示的に指定され、Buttonはデフォルトの集約のToolbarに配置されます。

この情報を念頭に置いて、XMLファイルで何をやっているのかを考えてみましょう。実際にをデフォルトの集約sap.m.Buttonの内側に配置しようとしています。このクラスは独自の集約を持っていません(customDataのようないくつか継承された集約のみ)。したがって、デフォルトの集約はありません。それがエラーを起こす理由です。基本的には、ボタンコントロールに直接の子がない場合があります。

カスタムコンテンツを「ボタン」を構築したい場合は、あなたがcustom button controlを作成するか、またはあなたがsap.m.CustomTileのようなものを使用することができます。

+0

このリンク(https://i.hizliresim.com/5QoXBl.png)のようなボタンを使用できますか?実際には、コンポーネントをクリック可能にしたいので、その内部に別のラッパーコンテナを追加することができます。ボタンの代わりにどのコンポーネントを使用する必要がありますか?ご協力いただきありがとうございます。 – MLElyakan

+0

このスクリーンショットは、[sap.m.CustomListItem](https://openui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.CustomListItem/プレビュー)をtype = "Active"(クリック可能)に設定します。 –

+0

グリッドのdefaultSpanプロパティが機能していない(defaultSpan = "L4 M6 S12")CustomListItemの幅の値が常にフルサイズになっています – MLElyakan

0

「flex-container」としてフレックスボックスにクラスを追加します。

onAfterRendering: function(){ 

     $(".flex-container").click(function(){ 
      alert("hi"); 
     }); 

    } 
関連する問題