我对使用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;
}
观看演示here。
答案 0 :(得分:0)
在“简化”代码中,没有垂直面板。您正在直接向UIApp添加标签。如果您有垂直面板,则可以使用VerticalPanel.clear()
清除所有现有项目
答案 1 :(得分:0)
我终于弄清楚了,在加载段中添加面板允许它正确清除。当它首次在onclick函数中声明时,它会导致它执行上述行为,因此只需在加载中声明并隐藏它,然后在需要时显示它就会停止该行为。
我不能完全确定为什么我不能在onclick中首先声明它,但它确实有效,所以我不抱怨。
感谢大家的帮助。