0

Webアプリのサービスとして公開されているスクリプトがあり、その中に検索機能を構築しようとしています。sciptは、ユーザーがsearchBoxというテキストボックスに用語を入力し、[検索]をクリックして、その用語を含むスプレッドシートの行を表示できるようにすることを目的としています。

function searchClickHandler(e) {
  var app = UiApp.getActiveApplication();
  var searchResultPanel = app.getElementById('searchResultPanel');
  var searchResultPane = app.getElementById('searchResultPane');
  var searchCloseButton = app.getElementById('searchCloseButton');
  var searchTerm = e.parameter.searchBox;
  if (searchTerm.toString().length == 6) {
    var searchList = ArrayLib.filterByText(dataValues, 1, searchTerm.toString());
    var searchTrim = new Array();
    for (var i = 0; i < searchList.length; i++) {
      var searchTrim1 = searchList[i].slice(1, 6);
      var searchTrim2 = searchList[i].slice(8, 10);
      var searchTrim3 = searchList[i].slice(17, 19);
      searchTrim.push(searchTrim1.concat(searchTrim2,searchTrim3));
    }
  }

その下にある場合は他にもいくつかあり、ハンドラーは結果を表示する必要がありますが、e.parameter.searchBoxは未定義で返されます。searchTermを手動で設定すると、スクリプトは正常に実行されます。

同じスクリプトの別のハンドラーでe.parameterを正常に使用しているので、このハンドラーで途方に暮れています。

前もって感謝します。

4

1 に答える 1

0

表示するコードは、実際にはヘルプに関連していません...作成時に「searchBox」に名前を付けましたか、それともそのIDですか?

e.parameterは、ウィジェットの名前を参照として使用します。

編集(コメントに続く):GUIビルダーで、次のようにコンマで区切られた名前(ウィジェットの場合はウィジェットまたはパネルの場合はID)ですべてのcallbackElementを追加してみてください:

ここに画像の説明を入力してください

于 2012-07-17T22:18:46.690 に答える