Google apps script 气体:如何将列表框选择设置为显示值

Google apps script 气体:如何将列表框选择设置为显示值,google-apps-script,Google Apps Script,我已将列表框值按升序排序,并选择了例如第三个值。选择后,列表框中显示的值是第一个值。它应该是选定的值,而不是第一个值。是否可以“激活”选定值以在选定后显示?这不是正常行为。。。如果您在列表框中选择一个项目,它将显示所选项目。。。。 您能否发布您正在使用的代码,以便我们可以尝试重现此问题?在过去几天中,我们一直在努力解决此问题,并遇到了一些困难。对于列表框(lb)、项目数组和列表中的选定项目(setitem),以下相当不雅的代码在下拉(单选)列表框中工作,仅标签(无值)和显示值的数量设置为1。改变

我已将列表框值按升序排序,并选择了例如第三个值。选择后,列表框中显示的值是第一个值。它应该是选定的值,而不是第一个值。是否可以“激活”选定值以在选定后显示?

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

在过去几天中,我们一直在努力解决此问题,并遇到了一些困难。对于列表框(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) {
    }
  }
函数fillListBox(lb,items,setitem){
试一试{
lb.clear();//使小部件可重用

对于(j=0;j,虽然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) {}
}
函数fillListBox(lb,items,setitem){
试一试{
lb.clear();//使小部件可重用
对于(j=0;j

通过这种方式,您可以添加所有项,然后使用数组中的索引设置索引。

我对您在这里所说的有点惊讶……我个人从未遇到过列表框的任何问题,除了在什么情况下您遇到过这些问题?我的问题与此类似,是因为文档稀少,这促使您探索发生了什么,然后用有效的代码进行编码,而不是最佳的解决方案。谢谢,我没有直截了当地思考。我的想法是我应该能够在Widget中的项目上使用数组。我找到了问题所在。我使用UI将值存储在数据库中,因为我想要列表框b当我点击它时,我在listbox处理函数中编码了更新例程。现在我删除它来添加和删除例程,一切正常。