2013-03-22 5 views
0

Я пытался создать небольшое приложение, которое отображает выбранный элемент из списка и добавляет его к имени файла, который будет загружен. Я могу отображать все правильно, и файл загружается, но значение, которое должно быть добавлено к имени файла, равно «undefined». Вот пример:Как получить выбранный элемент listBox как строку?

function doGet(e) { 

var app = UiApp.createApplication().setTitle("Upload CSV to Sheet"); 

var panel = app.createVerticalPanel(); 
var listBox = app.createListBox().setName('myList').setId('myList').setWidth('80px'); 
listBox.addItem('Value1'); 
listBox.addItem('Value2'); 
listBox.addItem('Value3'); 
listBox.addItem('Value4'); 

panel.add(listBox); 
app.add(panel); 

    var formContent = app.createVerticalPanel(); 
    formContent.add(app.createFileUpload().setName('thefile')); 
    formContent.add(app.createSubmitButton('Submit')); 
    var form = app.createFormPanel(); 
    form.add(formContent); 
    app.add(form); 
    return app; 
} 

function doPost(e) { 
var fileBlob = e.parameter.thefile; 
var app = UiApp.getActiveApplication(); 
    var doc = DocsList.createFile(fileBlob).rename(e.parameter.myList+Utilities.formatDate(new Date(), "GMT", "MM-dd-yy")); 
    return app; 
} 

Как я могу получить имя файла, чтобы принять значение из ListBox?

ответ

2

Вы добавили в приложение listBox вместо добавления его в контент формы. Это имеет 2 последствие:

1 - список остается видимым после подачи

2 - список не получен doPost, так как он не в форме ...

Try это так :

function doGet() { 

var app = UiApp.createApplication().setTitle("Upload CSV to Sheet"); 

var panel = app.createVerticalPanel(); 
var listBox = app.createListBox().setName('myList').setId('myList').setWidth('80px'); 
listBox.addItem('Value1'); 
listBox.addItem('Value2'); 
listBox.addItem('Value3'); 
listBox.addItem('Value4'); 

panel.add(listBox); 

    var formContent = app.createVerticalPanel(); 
    formContent.add(app.createFileUpload().setName('thefile')); 
    formContent.add(app.createSubmitButton('Submit')); 
    formContent.add(panel); 
    var form = app.createFormPanel(); 
    form.add(formContent); 
    app.add(form); 
    return app; 
} 

function doPost(e) { 
    var fileBlob = e.parameter.thefile; 
    var doc = DocsList.createFile(fileBlob).rename(e.parameter.myList+' '+Utilities.formatDate(new Date(), "GMT", "MM-dd-yy")); 
    var app = UiApp.getActiveApplication(); 
    return app; 
} 
+1

+10 для включения других симптомов. – Mogsdad

Смежные вопросы