2013-07-17 6 views
0

Я знаю, что это что-то обсуждалось sooo много раз, но я не могу получить значение текстового поля, помещенного в таблицу. Я знаю, как получить значение текстового поля (e.parameter.textBoxName), обычно он работает без проблем.Получить значение текстового поля в таблице (GAS)

Единственное различие заключается в том, что у меня есть гаджет, содержащий 5 вкладок, каждый из которых содержит некоторый вводный текст и таблицу. Каждая таблица содержит приблизительно 30 строк, каждая из которых содержит два текстовых поля и кнопку для отправки значения двух текстовых полей в определенной строке в электронную таблицу. Все работает нормально, все имена (и идентификаторы) уникальны, но проблема в том, что когда я отправляю текстовые поля, я получаю «неопределенный» (в моей электронной таблице).

Я думаю, что проблема лежит где-то в сложности сценария, так это:

function buttonClick(e) { 
    var app = UiApp.getActiveApplication(); 
    var theValue = e.parameter.textBoxName; 
    ...something... 
} 

..is просто не достаточно, чтобы определить, какие TextBox это. Тем не менее я получаю идентификатор кнопки без каких-либо проблем с

var buttId = new String(e.parameter.source); 

Я пытаюсь получить мою голову вокруг этого в течение нескольких дней без каких-либо результатов. Я не так хорош с GAS, и я совершенно не разбираюсь в объективном программировании. У вас есть идеи, как получить эту ценность? Я могу получить идентификатор таблицы, если это поможет, но что использовать тогда?

спасибо, что заблаговременно!

EDIT: Я пробовал .addCallbackElement (текстовое поле) в текстовое поле - я получаю сообщение об ошибке. Я попробовал .addCallbackElement (текстовое поле) к кнопке submit вместе с .addCallbackElement (кнопка), и я все еще получаю «undefined».

+0

Я забыл упомянуть, что я попробовал '.addCallBackElement (textBox)' как упоминалось здесь [link] (http: // http: //stackoverflow.com/questions/12831385/google-apps -script-textbox-value-not-pass-to-e-parameter-textboxname? rq = 1), но я получаю сообщение об ошибке, возможно, я просто не знаю, как это сделать: - /. – kellins

ответ

0

callbackElement должен быть добавлен к обработчику, а не к виджету и к кнопке.

Самый простой (и безопасный) способ сделать это правильно - выбрать родителя самого высокого уровня как callbackElement.

В вашем случае это, вероятно, будет панель вкладок или, в конце концов, другая панель, содержащая ваши 5 вкладок, если вы ее использовали.

Заметим также, что там может быть действительно много виджетов в том же интерфейсе, не вызывая какой-либо вопрос ... У меня есть приложение с около 200 Textboxes, который работает безупречно, и я не знаю о каких-либо ограничений, ни если предел даже существует ...

+0

Благодарим вас за ответ. Где я должен поместить код с callbackelement? Я попробовал как панель вкладок, так и таблицу, и я все равно получаю «неопределенный». – kellins

Смежные вопросы