ComboBoxのプルダウンリストに100件以上のデータを表示させたい


はじめに

こんにちは。
SAPUI5のsap.m.ComboBoxのプルダウンに表示するデータに関して
100件以上データを表示させる方法について実装する機会があったので備忘録として記事を書かせていただきます。

コンボボックスのlength指定を変更する

sap.m.ComboBoxのプルダウンに表示させるデータをoDataなどから取得する際通常100件以上のデータは表示されません。
(101件目以降のデータは自動的に非表示となる)

その場合以下のようにitemsのlength指定を行うと100件以上のデータを表示させることができます。
以下の例だと500件データを表示させることができます。

demo.view.xml
        <content>
          <m:ComboBox items="{ path: 'path名', sorter: { path: '項目名' }, templateShareable:true, length: 500}">
            <core:Item key="{ 指定Path }" text="{ 指定Path }" />                           
          </m:ComboBox>
        </content>

この解決方法で考えられうる問題

  • 表示するデータの件数によっては処理が遅くなってしまう可能性がある
  • 表示させたいデータ数を変更したい際にlengthの値をいちいち更新しないといけない
  • そもそも多数のデータが存在する場合はコンボボックスではなくValueHelpなどでユーザに絞り込みを行わせて入力を行うようにするのが奨励されているためあまりこの使い方は良くない?

他の対処方法

Controller側でoModel.setSizeLimit(データ数);の関数を使えば
解消できるという記事やコメントを見かけましたがあまりうまく動作しませんでした………

さいごに

25件?以上のデータを表示する場合はComboBoxではなくValueHelpの使用を推奨されているので
使用する機会は少ないかもしれませんがもしどうしてもComboBoxで対応を行いたい場合などにぜひご参考ください。