3

選択したアイテム自体ではなく、GoogleAppsScriptリストボックスで選択したアイテムのインデックスを取得したい。これまでに見たすべての例は、リストボックスの値を取得するサーバーハンドラーを作成します。

var list1Value = e.parameter.list1;

配列にインデックスを付けることができるように、インデックスを取得したいのですが。このソリューションを使用しようとしました http://productforums.google.com/forum/#!category-topic/apps-script/services/vXa57-9T6E4 スクリプトがindexOfが認識されないと文句を言いました

var currentmonth = months.indexOf(e.parameter.list1);

インデックスを取得する方法について誰かが良い考えを持っていますか?ちなみに、これはスプレッドシートではなくサイトで実行されているGoogle Apps Scriptであり、違いが生じます。

4

1 に答える 1

1

Google Apps ScriptはブラウザでindexOf()はなくGoogleのサーバーで実行され、GASでよく認識されているため、他の答えはあまり意味がありません。

listBoxの要素を含む配列を使用する必要があります。使用listArray.indexOf(listelement);すると、選択したアイテムのインデックスが取得されます。

例 :

//in the UI construction 

var ItemlistArray = ['item1','item2','item3','item4'];// note that this variable definition could be placed outside of the function so it becomes a global variable...
for (n=0,n<ItemlistArray.length;++n){
ListBox.addItem(ItemlistArray[n]
}

//in the Handler function

var item = e.parameter.listBoxName
var ItemlistArray = ['item1','item2','item3','item4'];// if ItemlistArray is global this line can be removed
var index = ItemlistArray.indexOf(item); // if for example the selected item was 'item3', index will be 2
于 2012-08-04T12:49:37.643 に答える