0

我对使用 Google 脚本还很陌生,除了一个无论我在哪里都找不到答案的问题外,我做得还不错。我有一个提交按钮,在单击处理程序时会隐藏当前面板并显示一个verticalPanel,其中添加了很多标签。

然后,我有一个后退按钮,可将您带回原始面板,因此它会隐藏当前页面,然后重新显示第一页。当他们再次单击提交时出现问题,我已经清除了verticalPanel,但是当添加一个新的并将内容添加到其中时,新内容从最后一个面板完成的地方开始,所以在页面下方的3/4处. 如何重用现有的verticalPanel 或将其丢弃以添加新内容?

代码

这是一个极其简化的版本,显然你不会这样写,但它有助于解释它。每次单击按钮时,运行此代码都会继续添加相同的标签,每次单击时我都想要一个新页面:

// Script-as-app template. 
function doGet() {
  var app = UiApp.createApplication();
  var button = app.createButton('Click Me');
  app.add(button); 
  var handler = app.createServerHandler('myClickHandler'); 
  button.addClickHandler(handler);
  return app;
}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();
  var label = app.createLabel('The button was clicked');
  app.add(label)
  app.close();
  return app;
}

演示

在此处查看演示。

4

2 回答 2

0

在您的“简化”代码中,没有垂直面板。您正在直接向 UIApp 添加标签。如果您有一个垂直面板,您可以使用VerticalPanel.clear()它来清除所有现有项目

于 2013-06-03T06:52:52.693 回答
0

我终于设法弄清楚了,在加载段中添加面板可以让它正确清除。当它第一次在 onclick 函数中声明时,它会导致它执行上述行为,因此只需在加载中声明它并隐藏它,然后在需要时显示它就可以停止该行为。

不完全确定为什么我不能首先在 onclick 中声明它,但它有效,所以我没有抱怨。

感谢大家的帮助。

于 2013-06-04T11:53:28.253 回答