我想要的只是当我按下Actual Ui中的按钮时,打开一个新的Ui而不关闭Actual Ui。
这是我做的一个简单的代码:
function shows(){
var app = UiApp.createApplication().setTitle("Actual Ui")
.setHeight(3000).setWidth(1350);;
var button = app.createButton('Button');
var pan = app.createHorizontalPanel();
pan.add(button)
var clickHandler = app.createServerClickHandler("ps");
button.addClickHandler(clickHandler);
clickHandler.addCallbackElement(pan);
app.add(pan);
var doc = SpreadsheetApp.getActive();
// show the app
doc.show(app)
}
function ps(e){
var apps = UiApp.createApplication().setHeight(50).setWidth(200);
apps.setTitle("New UI");
var docsss = SpreadsheetApp.getActive();
docsss.show(apps);
return apps
}
代码完美无缺,但是当我按下按钮时它会关闭Actual Ui并打开新的代码。
答案 0 :(得分:0)
你不能这样做,这是它的工作原理,使用相同的应用程序实例并更改其内容。
function shows(){
var app = UiApp.createApplication().setTitle("common Ui")
.setHeight(400).setWidth(1350);;
var button = app.createButton('Button');
var pan = app.createHorizontalPanel().setId('panelUi1');
pan.add(app.createLabel(' first Ui'));
pan.add(button)
var clickHandler = app.createServerClickHandler("ps");
button.addClickHandler(clickHandler);
clickHandler.addCallbackElement(pan);
app.add(pan);
var doc = SpreadsheetApp.getActive();
// show the app
doc.show(app)
}
function ps(e){
var app = UiApp.getActiveApplication();
app.getElementById('panelUi1').setVisible(false);
app.add(app.createLabel('new Ui in the same app instance'));
return app;
}