UiApp,FlexTable.removeRow()

时间:2014-09-26 12:29:11

标签: google-apps-script

我有一个UiApp,它有一个FlexTable,每行代表一个位置。这些位置由复选框标记,用户选择它们,当它们执行保存功能时,我想更新表格,以便只保留选定的行。

...
var checkbox_sorszam = []
var rows_to_del = []

  for(var i = 0; i < locations_data.length; i++)
  {
    if(e.parameter['checkboxischecked'+i] == 'true')
    {
      location_list.push(e.parameter['checkbox_value_'+i]);
      checkbox_sorszam.push(i)
    }
    if(e.parameter['checkboxischecked'+i] == 'false')
    {
      rows_to_del.push(i)
    }   
  }

这样我就有了需要删除的行索引

for (var d=0;d<rows_to_del.length;++d)
  {
    Logger.log(rows_to_del[d])
    tarhely_table.removeRow(rows_to_del[d])        
  }

我收到'无效值:行'错误。我尝试了parseInt(rows_to_del [d]),结果相同。我不想创建新表,而是删除用户没有选择的行。

1 个答案:

答案 0 :(得分:1)

考虑反过来删除行。

我们说你的桌子最初有3行:

  

0:红色
  1:绿色
  2:蓝色

用户选择第1行,因此您计划删除第0行和第2行。

首次通过循环,删除第0行。现在你的表是:

  

0:绿色
  1:蓝色

第二次循环,删除第2行

没有第2行......

重新开头,让我们说用户选择第2行:蓝色,所以你打算删除0和1。

第一次循环,删除第0行,现在你的表是:

  

0:绿色
  1:蓝色

第二次循环,你删除第1行,现在你的表是:

  

0:绿色

用户感到困惑。