2017-03-14 8 views
2

のリストレポートのページで選択された行を取得するにはどのように、私はまた、名前のボタンを持っていますハイライトされたセクションの部分にリクエストを送信します。このボタンをクリックすると、アプリケーションの拡張で定義されているjavascriptコントローラ関数が呼び出されます。このjs関数では、選択された選択行をどのように取得できますか?これは私が2番目と5番目の行を選択している。ここ <a href="https://i.stack.imgur.com/QES5J.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QES5J.jpg" alt="enter image description here"></a></p> <p>スマートテンプレートアプリケーションのリストレポートの種類であるスマートテンプレート

私はこのコードに

「設定」に言及することで、このページでチェックボックスを有効にしている:{「gridTableを」:偽、「複数選択」:真} manifest.jsonを

で、それが推奨されたとおりこのリンクでhttps://sapui5.netweaver.ondemand.com/#docs/guide/116b5d82e8c545e2a56e1b51b8b0a9bd.html

どのように選択された行を取得できますか?

答えて

1

ご使用のケースで使用できるAPIがあります。ここで説明します:https://sapui5.netweaver.ondemand.com/#docs/guide/bd2994b69ef542998becbc69ab093f7e.html

基本的には、getSelectedContextsメソッドを呼び出すだけです。残念ながら、実際にアイテム自体を取得することはできず、バインディング・コンテキスト(選択されたデータ・エンティティを指す)のみが取得されます。ドキュメントからの抜粋:

ビュー拡張を定義した後、あなたは( 例えば、可視性を変更する)これらの拡張機能の中に定義されているすべてのUI要素の プロパティにアクセスして変更することができます。 ただし、表示拡張内で定義されていないUI 要素にはアクセスできません。テーブルのこの種の方法があるで

1

var myTable=sap.ui.getCore().byId("your table id"); 

すべての行を取得:

var myTableRows=myTable.getRows(); 

は今、選択したインデックス

var selectedIndeices=myTable.getSelectedIndices(); //this will give you array of indeices. 

は今indeicesアレイ上でループを実行します。特定の行項目を取得します。 //バインディングパスを取得

var bindingpath=myTableRows[2].getBindingContext().sPath; // this will return eg:"/ProductCollection/2" 

//この特定の行のBindingオブジェクトを取得します。

var myData=myTableRows[2].getModel().getObject(bindingpath); // this will return binding object at that perticular row. 

//最後にループが終了すると、選択した行のすべてのオブジェクトが表示されます。あなたがしたいことを何でもしてください。

+0

私はスマートテンプレートを使用しています。テーブルのIDはどこで入手できますか? –

+0

あなたはあなたのテーブルにIDを与えただけかもしれません。そうでなければ1つ与える。 –

関連する問題

 関連する問題