0

スプレッドシートの値を使用して非常に大きな UI を更新するハンドラー関数があります。シートの行インデックスは、e.parameter.hidden(非表示は値を保持するウィジェットです)として callbackElement から取得され、関数でインクリメント/デクリメントされます。

スプレッドシートで文字列値を検索し、この同じ非表示のウィジェットに割り当てる行インデックスを返す別のハンドラー関数があります。

最初に「検索」ハンドラーをトリガーし、次に表示」ハンドラーをトリガーすると、UI が「見つかった」データで更新されます。これは素晴らしいことですが、2 つの異なるボタンを 2 回別々にクリックする必要があります。

ここで私の質問: 「検索ハンドラー関数」に「表示ハンドラー」への呼び出しを含め、すべての e.parameters を渡すが、唯一の値を変更するにはどうすれe.parameter.hiddenばよいですか?

が多くのキーと値を持つオブジェクトであることは知っeていますが、その中の 1 つの値だけを操作する方法がわかりません...

検索ハンドラーのコードは非常に短く、次のようになります。

function findname(e){ // this function is called by a handler triggered by a keypress on  a textBox
  var app = UiApp.getActiveApplication();
  var hiddenD = app.getElementById('hiddenD');
  var str = e.parameter.find ; // find is the textBox's name
  var found = point(str);// point() is a function that returns the rowindex of the found value
  hiddenD.setValue(found);// hiddenD is the hidden widget that I want to 'manipulate'
  nextitem(e);// nextitem is the function that updates the UI and that is normally called by a handler on another button
return app
}

この質問が十分に明確であることを願っています (これは説明するのが簡単ではありませんでした)。そうでない場合は、質問してください ;-)

4

2 に答える 2

1

eは、キーで操作できる単なるjsonデータです。

コードスケルトンは次のようなものです

searchHandlerFunction(e){
//Your all other sttements
//Assign the new value to hidden parameter
e.parameter.hidden = <your new value>;
DisplayFunction(e);
}
于 2012-07-30T06:35:29.597 に答える
1

rowIndex を単純に CacheService プロパティとして保存してみませんか? 非表示のフィールドと非表示のテキスト ボックスの代わりに、これを使用して多くの成功を収めています。

どこからでも呼び出して、どこでも変更できます。

于 2012-07-30T06:22:11.667 に答える