GAS:如何将列表框选择设置为显示值

时间:2012-10-24 18:54:14

标签: google-apps-script

我已经对列表框值进行了升序排序和选择,例如第3个值。选择后,列表框中显示的值是第一个。它应该是选定的值,而不是第一个值。是否可以“激活”所选值,以便在选择后显示?

3 个答案:

答案 0 :(得分:0)

这不是正常行为......如果您在列表框中选择一个项目,它会显示所选项目.... 你可以发布你正在使用的代码,以便我们可以尝试重现这个问题吗?

答案 1 :(得分:0)

过去几天一直在努力解决这个问题,遇到了一些困难。对于列表框(lb),项目数组和列表中的选定项目(setitem),以下相当不优雅的代码在下拉列表(单选)列表框中工作,只有标签(无值)和显示值的数量设置为改变任何这些条件似乎都会明显改变行为。

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) {
    }
  }

这个整个领域的清晰文档将受到赞赏(和更好的代码)

答案 2 :(得分: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) {}
}

这样,您添加所有项目,然后使用数组中的索引设置索引。