наглядный пример использования скрипта Google UI Builder и приложений

Я искал везде и не могу найти четкий пример того, как использовать Googles UI Builder и скрипт приложения. Я понятия не имею, что мне не хватает. Я думаю, это должно быть просто: v / YES, я прочитал все документы Googles, просмотрел видео и т. Д. - несколько раз - комбинация GUIB отсутствует(Google's UI Builder) и функцию обработчика обратного вызова, которую я могу найти.
EDIT: there are examples for SpreadSheets - not GSites

What I need to do:
Я хотел бы добавить текстовое поле и кнопку для получения поисковой фразы от пользователя на странице сайта Google. Я создал очень простой пользовательский интерфейс с единой потоковой панелью, текстовым полем и кнопкой, но могу получить только «Не определено». возвращается из Logger.log () независимо от того, что я делаю(see code below).

A bit of a rant:
Я был очень осторожен, чтобы назвать и назвать правильные имена. Я пытался использовать форпанель НО в GUIB, в него можно поместить только ОДИН виджет ?! ... И кнопка отправки войдет только в формпанель - да, я тоже не могу вставить свое текстовое поле !?(Why bother with the formpanel then - I don't get that! ...yeah I know about doPost() automatically being called on submit), Я хочу, чтобы виджеты оставались активными и не исчезали после одного использования, так что, может быть, formpanel / submitbutton все равно не будет работать - или это не правильный способ сделать это?

Down to business:
At any rate, what I've tried is to put the regular button and text box in a flowpanel with the following code...
EDIT: I deleted my original content here and reposted this section...

// 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!
}

Я также пытался добавить код для ручной установки обработчиков и т. Д. В doGet () и не использовать настройки событий GUIB, но также безрезультатно.

Conclusion?
Что дает? Нужно ли вручную кодировать GUI и не использовать GUIB? Я знаю, что на этот раз все просто, но если мне удастся заставить это работать, я уверен, что гораздо приятнее создавать другие приложения с GUIB! Кто-нибудь может дать мне или указать на четкий пример ?!

Спасибо за прочтение!

Ответы на вопрос(2)

Ваш ответ на вопрос