0

リストボックスの値を昇順で並べ替え、たとえば 3 番目の値を選択しました。選択後、リストボックスに表示される値が最初の値です。最初の値ではなく、選択した値にする必要があります。選択した値を「アクティブ化」して、選択後に表示することはできますか?

4

3 に答える 3

0

過去数日間これに苦労し、いくつかの困難に遭遇しました。リストボックス(lb)、アイテムの配列、およびリスト内の選択されたアイテム(setitem)の場合、次のかなりエレガントでないコードは、ラベル(値なし)と表示される値の数だけが設定されたドロップダウン(単一選択)リストボックスで機能します1.これらの条件のいずれかを変更すると、動作が著しく変化するようです。

function fillListBox(lb,items,setitem){
    try {
      lb.clear();  // making the widget reusable

      for (j=0;j<items.length;j++){
        var item = items[j];
        lb.addItem(item);
           if (item==setitem){
          lb.setSelectedIndex(j);  // zero is the first item in list
             } 
      }

    } 
    catch(e) {
    }
  }

この領域全体の明確なドキュメントをいただければ幸いです(そしてより良いコード)

于 2012-10-24T19:55:42.960 に答える
0

DavidF のソリューションは機能しますが、これはもう少し簡単だと思います。

function fillListBox(lb,items,setitem){
  try {
    lb.clear();  // making the widget reusable

    for (j = 0; j < items.length; j++){
      lb.addItem(items[j]);
    }
    lb.setSelectedIndex(items.indexOf(setitem));
  } catch(e) {}
}

このようにして、すべてのアイテムを追加してから、配列内のインデックスを使用してインデックスを設定します。

于 2012-10-25T15:06:41.990 に答える
0

これは通常の動作ではありません... listBox でアイテムを選択すると、選択したアイテムが表示されます....問題を再現できるように、使用しているコードを投稿していただけますか?

于 2012-10-24T19:50:30.820 に答える