Ein anschauliches Beispiel für die Verwendung des Google UI Builder- und Apps-Skripts

Ich habe überall gesucht und kann kein klares Beispiel für die Verwendung von Googles UI Builder und Apps finden. Ich habe keine Ahnung, was mir fehlt. Ich denke, das sollte einfach sein: v / YES, ich habe alle Googles-Dokumente gelesen, Videos usw. angesehen - mehrmals - es gibt keine GUIB-Kombination(Googles UI Builder) und eine Callback-Handler-Funktion, die ich finden kann.
EDIT: Es gibt Beispiele für SpreadSheets - keine GSites

Was ich tun muss:
Ich möchte ein Textfeld und eine Schaltfläche einbetten, um einen Suchbegriff von einem Nutzer auf einer Google-Site-Seite zu sammeln. Ich habe die sehr einfache Benutzeroberfläche mit einem Flowpanel, einem Textfeld und einer Schaltfläche erstellt, kann aber immer nur "Undefined" von Logger.log () zurückgeben, egal was ich tue(siehe Code unten).

Ein bisschen schimpfen:
Ich habe mich sehr darum gekümmert, die richtigen Namen zu nennen. Ich habe versucht, ein Formpanel zu verwenden, ABER in GUIB können Sie nur EIN Widget einfügen ?! ... UND eine Senden-Schaltfläche wird nur in ein Formularfenster eingefügt - huh - ich kann mein Textfeld auch nicht einfügen !?(Warum sich dann um das Formpanel kümmern - das verstehe ich nicht! ... ja, ich weiß, dass doPost () beim Absenden automatisch aufgerufen wird). Ich möchte, dass die Widgets nach einer Verwendung aktiv bleiben und nicht verschwinden. Deshalb funktioniert Formpanel / Submit-Button möglicherweise sowieso nicht - oder ist dies nicht der richtige Weg?

Runter zur Sache:
Auf jeden Fall habe ich versucht, die normale Schaltfläche und das Textfeld in einem Flowpanel mit dem folgenden Code zu platzieren ...
BEARBEITEN: Ich habe meinen ursprünglichen Inhalt hier gelöscht und diesen Abschnitt neu gepostet ...

// Google Sites and UIBuilder (GUIB) - kgingeri (Karl)
// - this script is embedded in a GSite page via: Insert -> Apps Script Gadget.
//
// Withing GUIB I have defined:
// - a FlowPanel named 'pnlMain'
// - inside that a textBox named 'tbxQuery' and a button called 'btnSearch'
// - for btnSearch, I have defined (in the Events subsection) a callback function
//   btnSearchHandler (see it below doGet() here.  I expanded the [+] beside that
//   and entered 'tbxQuery'    
//
// the GUIB compnent tree looks like this...
//
//  [-] testGui
//    [-] pnlMain
//          btnSearch
//          tbxQuery
//
// btnSearch Event section looks something like this...
//
// Events
//  On Mouse Clicks
//  [X][btnSearchHandler][-]
//  [tbxQuery         ]<--'
//  [Add Server]
//  ...
//
// So... 
// 1) when the page is opened, the doGet() function is called, showing the defined UI 
// 2) when text is entered into the textBox and the button is clicked
// 3) the data from tbxQuery is **SUPPOSED TO BE** returned as e.parameter.tbxQuery
//    in the function 'btnSearchHandler(e)' **BUT IS NOT**  :v(
//
// (this functionality appears to work in a spreadsheet?! - weird?!)

//
//    [ predefined function --- Google calls on page open ]
//
// ...this works 'as advertised' ;v)
//
function doGet(e) {
  var app = UiApp.createApplication();
  app.add(app.loadComponent("testGui"));  // ...the title that shows in G/UIBuilder
  return app;
}

//
//    [ callBack for when a button is clicked ]
//
// ...I always get 'Resp: [Undefined]' returned in the View -> Logs menu?!
// ...I also tried to put 'pnlMain' in the Event [+] param, no go :v(
//
function btnSearchHandler(e) {
  var resp = e.parameter.tbxQuery  // ...the data I want in the textBox widget
  Logger.log('Resp: [' + e.parameter.tbxQuery + ']');
  // ...more code to come, once this works!
}

Ich habe auch versucht, Code zum manuellen Festlegen von Handlern usw. in doGet () hinzuzufügen und keine GUIB-Ereigniseinstellungen zu verwenden, aber auch keinen Erfolg.

Fazit?
Was gibt? Muss ich die GUIs manuell codieren und nicht GUIB verwenden? Ich weiß, dass es diesmal einfach ist, aber wenn ich das zum Laufen bringen kann, sehe ich sicher, dass es viel angenehmer ist, andere Apps mit GUIB zu erstellen! Kann mir jemand ein klares Beispiel geben oder zeigen ?!

Danke fürs Lesen!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage