gpt4 book ai didi

google-apps-script - 如何删除谷歌图表并将其替换为谷歌应用程序中的新图表?

转载 作者:行者123 更新时间:2023-12-02 05:31:59 26 4
gpt4 key购买 nike

我到处搜索都找不到解决办法。我试图让这段代码在用户每次点击“提交”时显示一个图表(那部分有效)。问题出在用户点击提交多次之后。它多次显示图表。我如何让它删除最后一个图表并用新图表更新它?

function doGet() {
var uiApp = UiApp.createApplication().setTitle("some title");

var grid = uiApp.createGrid(3, 2);
grid.setWidget(0, 0, uiApp.createLabel('Lablel 1'));
grid.setWidget(1, 0, uiApp.createLabel('Lablel 2'));

var panel = uiApp.createVerticalPanel();

panel.add(grid);

var button = uiApp.createButton('submit');
var handler = uiApp.createServerHandler('b');
handler.addCallbackElement(grid);
button.addClickHandler(handler);

panel.add(button);
uiApp.add(panel);

return uiApp;
}

function b(e) {
var app = UiApp.getActiveApplication();

//gets all my chart data
var chart = getchartdata()

//Add chart
app.add(chart)

var uiApp = UiApp.getActiveApplication();
uiApp.close();

return uiApp;
}

最佳答案

最简单的方法是为您的图表创建一个单独的面板,并在每次添加图表之前清除它。VerticalPanel 小部件还有一个您可以使用的删除方法。请参阅下面的代码,了解我建议的第一个选项

function doGet(){
/* All your other code here */
uiApp.add(panel);
var chartPanel = uiApp.createVerticalPanel().setId('chartPanel');
uiApp.add(chartPanel);

return uiApp;
}

function b(e) {
var app = UiApp.getActiveApplication();

//gets all my chart data
var chart = getchartdata()

/* Clear chart Panel */
var chartPanel = app.getElementById('chartPanel');
chartPanel.clear();

//Add chart
chartPanel.add(chart)

var uiApp = UiApp.getActiveApplication();
uiApp.close();

return uiApp;
}

P.S:我不确定为什么您有两个不同的变量 app 和 uiApp 用于同一事物。虽然不是你的情况,但它可能会导致困惑和问题。

关于google-apps-script - 如何删除谷歌图表并将其替换为谷歌应用程序中的新图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com