在不关闭实际打开的Ui的情况下打开新UI

时间:2014-02-05 14:33:49

标签: google-apps-script google-sheets

我想要的只是当我按下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并打开新的代码。

1 个答案:

答案 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;
}