2017-01-05 16 views
0

Gridの下にStandardListItem要素のリストがあり、jsonモデルを使用してそれらをjsonファイルにバインドしたいと思います。 これはコントローラでバインディングを行う方法です。私はテーブルのためにこれをやっているので、この部分が正しいと確信しています。sapui5のグリッドレイアウトにデータをバインドする方法xmlビュー

var pricingModel = new JSONModel("./model/evaluation.json"); 

//set model(s) to current xml view 
this.getView().setModel(pricingModel, "pricingModel"); 

私はきちんとすることができていないので、これは私が価値の多くをハードコーディングされてきた私は

<l:Grid class="sapUiSmallMarginTop" 
    id="priceEvalGridContainer" visible="false" 
    binding="{/PriceEstimate}"> 
<l:content> 
<l:VerticalLayout id="priceEvalCol1" width="100%"> 
    <StandardListItem title="NSN" 
         info="{NSNID}"/> 
    <StandardListItem title="DLA Price Estimate (DLA)" 
         info="{DLAPriceEstimate}"/> 
    <StandardListItem title="Proposed Price" 
         info="$20.00" /> 
</l:VerticalLayout> 
<l:VerticalLayout id="priceEvalCol2" width="100%"> 
    <StandardListItem title="$ Difference From DLA" info="$1.50" /> 
    <StandardListItem title="Total Price Difference" info="$135.00" /> 
    <StandardListItem title="PPI Price Adjusted For Inflation" info="$18.59" /> 
</l:VerticalLayout> 
</l:content> 
</l:Grid> 

私のデータをバインドしようとしている私のXMLビューの一部でありますデータを接続します。現在テストされている項目はinfo = "{NSNID}"とinfo = "{DLAPriceEstimate}"です

リストやグリッド内のStandardListItemを他のタイプのオブジェクトとバインドする方法の例を見てきましたが、一緒に行なわれているのを見ていない。

私は以下の方法でバインディングを試みましたが、それは私のためには機能しませんでした。

<l:Grid class="sapUiSmallMarginTop" 
    id="priceEvalGridContainer" visible="false" 
    binding="{ 
      path: '/PriceEstimate' 
       }"> 

アプリは問題なく実行され、エラーは表示されませんが、データはグリッドに表示されません。それは空白です。

答えて

1
this.getView().setModel(pricingModel, "pricingModel"); 

という名前のモデル、使用使用しているので:

binding="{pricingModel>/PriceEstimate}" 

をし、このデータをJSONが配列の場合、あなたのようなコンテンツにインデックスを与える必要があり:

info="{pricingModel>0/NSNID}" 

それ以外の場合はinfo="{pricingModel>NSNID}"となります。 (他の人にも同様) いずれにしても、データによって異なります。だからどのようにpricingModel見えるを追加します。

+0

これは機能します。私は、データとそのモデルへの道筋を特定しなければならないとは思わなかった。これはまさに私が必要としていたものです。 – polaris

関連する問題