2012-03-27 8 views
1

Google Appsスクリプトで書かれたUiAppで、チェックボックスに関連付けられたテキストの背景色を緑色に変更する必要があるチェックしないとオレンジ色になります。しかし、私はそれを動作させるように見えることはできません。 2州間でどのように切り替えることができるのか分かりますか?ここでは、このScriptPropertiesserver handler使用を行うことができます方法ですGoogle Appsスクリプト:チェックボックスに関連付けられたテキストの背景色を取得してチェック状態と非チェック状態を切り替える

var checkbox = app.createCheckBox("Complete").setId(id).setName('id'+String(id)); 

var clienthandler = app.createClientHandler() 
      .forEventSource().setEnabled(true).setStyleAttribute("backgroundColor","green") 
     .forEventSource().setEnabled(false).setStyleAttribute("backgroundColor","orange"); 

checkbox.addValueChangeHandler(clienthandler); 

答えて

0

は、ここでのサンプルコードです。

function doGet(e) { 
    var app = UiApp.createApplication(); 
    ScriptProperties.setProperty('toggleColor', 'green'); 
    var checkbox = app.createCheckBox("Complete").setId('hi').setName('id'+String('hi')) 
        .setStyleAttribute('backgroundColor', ScriptProperties.getProperty('toggleColor')); 

    var handler = app.createServerHandler('toggle'); 
    handler.addCallbackElement(checkbox); 
    checkbox.addClickHandler(handler); 
    app.add(checkbox); 
    return app; 
} 

function toggle(e) { 
    var app = UiApp.getActiveApplication(); 
    var color = ScriptProperties.getProperty('toggleColor'); 
    var checkbox = app.getElementById('hi'); 
    if (color == 'green') { 
    ScriptProperties.setProperty('toggleColor', 'orange'); 
    } else { 
    ScriptProperties.setProperty('toggleColor', 'green'); 
    } 
    checkbox.setStyleAttribute('backgroundColor', ScriptProperties.getProperty('toggleColor')); 
    return app; 
} 
0

クライアントハンドラは、同様にそれを行うことができます。

var textbox= ... define your textbox or get it by Id and give it a color 
    var clienthandler = app.createClientHandler() 
    .forEventSource().setEnabled(true);// not really necessary in this case 
    .forTargets(textbox).setStyleAttribute("backgroundColor","green");// assuming color was different by default 
    checkbox.addValueChangeHandler(clienthandler); 
関連する問題