0

ドロップダウンリストに2つの異なるオプションをユーザーに表示するこのUiAppがあります。ユーザーがそのうちの1つを選択すると、2つのオプションがあり、別のuiappが表示され、いくつかの情報が表示されます。また、元のメニューに戻るためのボタンがあります。私が抱えている問題は、選択を行うと、「エラーが発生しました:予期しないエラーが発生しました」というエラーが発生することです。オプション1と2の[戻る]ボタンをクリックしても同じことが起こります。これはGASのバグですか、それともそこにあるべきではないコードですか?

ありがとうございました!

 function Menu(e) {
  var app = UiApp.createApplication().setTitle(" Title"); 
  var dropDownList = app.createListBox().setName('list').setId('list');
  var infoLabel = app.createLabel('Scroll around to select the service     desired').setId('infoLabel');
//addItems  
  dropDownList.addItem("Options");
  dropDownList.addItem("Option1");
  dropDownList.addItem("Option2");

  var handler = app.createServerClickHandler('changeMe');
  handler.addCallbackElement(dropDownList);  
  dropDownList.addChangeHandler(handler);
  app.add(dropDownList);
  app.add(infoLabel);
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.show(app);
  return app;
  }

  function changeMe(e) {
      if(e.parameter.list === 'Option1'){
        var app1 = UiApp.createApplication();
        var html1 = app1.add(app1.createHTML("<p><i>Hello you have selected Option  1</i>    </p>")).setHeight(800).setWidth(600);
        var button1 = app1.createButton('Go back').setId("button1");
        app1.add(button1);
        var handler2 = app1.createServerHandler('Menu');
        button1.addClickHandler(handler2); 
        var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
        spreadsheet.show(app1);
        return app1;
        }

  else if (e.parameter.list === 'Option2'){;
     var app2 = UiApp.createApplication();
     var html2 = app2.add(app2.createHTML("Hello You have selected Option2"));
     var button2 = app2.createButton('Go back').setId("button");
     app2.add(button2);
     var handler2 = app2.createServerHandler('Menu');
     button2.addClickHandler(handler2);                                                                  
     var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
     spreadsheet.show(app2);
     return app2;
     }
   }
4

1 に答える 1

1

3つの「returnapp」行を削除してみてください。これは私にとってはうまくいくようです。showメソッドは、それを自動的にスプレッドシートに配置します。

于 2012-12-06T23:37:17.170 に答える