Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>It seems that you forgot to add a callback element to your handler...</p> <pre><code>addCallbackElement(name); </code></pre> <p>regards, Serge</p> <p>EDIT : Hi Joe, I'm also working on something like this... I thought it could be interesting to show what I have so far... not finished yet ;-) I paste the whole thing so you can esily test it:</p> <pre><code>function onOpen() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ {name: "Doclist UI", functionName: "doclistUI"}, ]; ss.addMenu("Utilities", menuEntries);// } // function doclistUI(){ var folderlist = new Array(); var folders=DocsList.getFolders() for(ff=0;ff&lt;folders.length;++ff){ folderlist.push(folders[ff].getName()); } var app = UiApp.createApplication().setHeight(260).setWidth(700).setStyleAttribute('background', 'beige') .setStyleAttribute("position", "relative").setStyleAttribute("left", "10").setStyleAttribute("top", "12px"); app.setTitle("Doclist UI"); var panel = app.createVerticalPanel() var hpanel = app.createHorizontalPanel(); var hpanel2 = app.createHorizontalPanel(); var Flist= app.createListBox(false).setName("Flb").setId("Flb").setVisibleItemCount(4).setWidth("180"); var Dlist= app.createListBox(false).setName("Dlb").setId("Dlb").setVisibleItemCount(8).setWidth("280"); var Flab=app.createLabel('Folder List').setWidth("80"); var Dlab=app.createLabel('Document List').setWidth("100"); var spacer=app.createLabel(' ').setWidth("30"); var spacer2=app.createLabel(' ').setWidth("15"); // Flist.addItem('Choose a folder'); for(ff=0;ff&lt;folderlist.length;++ff){ Flist.addItem(folderlist[ff]); } var anchor = app.createAnchor('open ', "www.google.com").setId('anchor').setVisible(false); hpanel.add(Flab).add(Flist).add(spacer).add(Dlab).add(Dlist) var docname = app.createLabel().setId('doc').setSize("360", "40"); hpanel2.add(anchor).add(spacer2).add(docname); var dwnld = app.createButton("Download").setId("dwnld"); panel.add(hpanel).add(hpanel2).add(dwnld); // var FHandler = app.createServerHandler("click"); Flist.addChangeHandler(FHandler) FHandler.addCallbackElement(hpanel); // var DHandler = app.createServerHandler("showlab"); Dlist.addChangeHandler(DHandler); DHandler.addCallbackElement(hpanel); // var keyHandler = app.createServerHandler("download"); dwnld.addClickHandler(keyHandler) keyHandler.addCallbackElement(panel); // app.add(panel); var doc = SpreadsheetApp.getActive(); doc.show(app); } // function click(e){ var app = UiApp.getActiveApplication(); var Dlist = app.getElementById("Dlb"); var label = app.getElementById('doc') var folderName = e.parameter.Flb if (folderName=='Choose a folder'){Dlist.clear();label.setText(" ");return app} var doclist=new Array(); doclist=DocsList.getFolder(folderName).getFiles(0,2000) if(doclist.length==0){Dlist.clear();Dlist.addItem(' No files');return app} var names = new Array(); for (nn=0;nn&lt;doclist.length;++nn){ names.push([doclist[nn].getName(),doclist[nn].getId()]); } names.sort(); Dlist.clear(); for(dd=0;dd&lt;names.length;++dd){ Dlist.addItem(names[dd][0]+" (doc Nr:"+dd+")"); } return app ;// update UI } // function showlab(e){ var app = UiApp.getActiveApplication(); var label = app.getElementById('doc') var link = app.getElementById('anchor') var Dlist = app.getElementById("Dlb"); var folderName = e.parameter.Flb var docname = e.parameter.Dlb var doclist=new Array(); Logger.log(doclist.length) doclist=DocsList.getFolder(folderName).getFiles(0,2000) if(doclist.length==0){return app} var names = new Array(); for (nn=0;nn&lt;doclist.length;++nn){ names.push([doclist[nn].getName(),doclist[nn].getId()]); } names.sort(); var filename = e.parameter.Dlb var ID= Number(filename.substring(filename.lastIndexOf(":")+1).replace(")","")); var docN = docname.substr(0,docname.lastIndexOf("(")) label.setText(docN).setEnabled(false).setStyleAttribute('fontSize', '15') link.setVisible(true).setHref("https://docs.google.com/spreadsheet/ccc?key="+names[ID][1]+"#gid=0"); return app ;// update UI } // function download(e){ // this part not implemented yet :-/ var app = UiApp.getActiveApplication(); var Dlist = app.getElementById("Dlb"); var folderName = e.parameter.Flb var doclist=new Array(); doclist=DocsList.getFolder(folderName).getFiles(0,2000) var names = new Array(); for (nn=0;nn&lt;doclist.length;++nn){ names.push([doclist[nn].getName(),doclist[nn].getId()]); } names.sort(); // var filename = e.parameter.Dlb var ID= Number(filename.substring(filename.lastIndexOf(":")+1).replace(")","")); Browser.msgBox(names[ID][1]) return app ;// update UI } //eof </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload