Error inesperado de secuencia de comandos de Google Apps
Frecuentes
Visto 723 veces
0
Escribí un formulario, pero ahora aparece un error inesperado.
function showCompletePage(){
var app = UiApp.getActiveApplication();
app.getElementById('rightPanel').setVisible(false);
var pnl = app.createVerticalPanel().setId('outro');
var text = "<p>Uw aanvraag is met succes verwerkt.</p>";
text += "<p>U zal zo meteen een offerte ontvangen via mail.<br />Verzeker u ervan dat de mail niet in uw spam toegekomen is.</p>";
text += "<p>Gelieve de offerte binnen de drie dagen terug te sturen, zodat uw reservatie definitief bevestigd kan worden.</p>";
pnl.add(app.createHTML(text).setId('final'));
var el = app.createButton('Klik hier indien u nog een opleiding wil reserveren').setId('anotherOne');
el.addClickHandler(app.createServerHandler("startAgain"));
app.add(pnl);
app.add(el);
return app;
}
function startAgain(e){
Logger.log('restart');
var app = UiApp.getActiveApplication();
app.getElementById('startAgain').setVisible(false);
app.getElementById('outro').setVisible(false);
buildUI();
return app;
}
Ya me di cuenta de que no me sale un error cuando comento la línea app.getElementById('outro').setVisible(false);
en la función empezar de nuevo()
Alguien que sepa lo que estoy haciendo mal?
1 Respuestas
1
Acabo de probar su código exacto y funciona aquí como se esperaba... Para fines de prueba, creé una función showCompletePage() que muestra otra interfaz de usuario y puedo cambiar de una a otra... Entonces, ¿quizás el error se encuentra en otro lugar? en la parte showCompletePage?
aquí está el código de prueba, su parte no ha cambiado:
function buildUI() {
var app = UiApp.createApplication().setHeight(130).setWidth(400);
app.setTitle("Search by name / lastname / adress");
var panel = app.createVerticalPanel().setId('rightPanel');
var txtBox = app.createTextBox();
var label=app.createLabel(" Item to search for :")
panel.add(label);
txtBox.setId("item").setName("item");
var label0=app.createLabel("Row").setWidth("40");
var label1=app.createLabel("Name").setWidth("120");
var label2=app.createLabel("Lastname").setWidth("120");
var label3=app.createLabel("Street").setWidth("120");
var hpanel = app.createHorizontalPanel();
hpanel.add(label0).add(label1).add(label2).add(label3)
//
var txt0=app.createTextBox().setId("lab0").setName("0").setWidth("40");
var txt1=app.createTextBox().setId("lab1").setName("txt1").setWidth("120");
var txt2=app.createTextBox().setId("lab2").setName("txt2").setWidth("120");
var txt3=app.createTextBox().setId("lab3").setName("txt3").setWidth("120");
var hpanel2 = app.createHorizontalPanel();
hpanel2.add(txt0).add(txt1).add(txt2).add(txt3)
var hidden = app.createHidden().setName("hidden").setId("hidden");
var subbtn = app.createButton("next ?").setId("next").setWidth("250");
panel.add(txtBox);
panel.add(subbtn);
panel.add(hidden);
panel.add(hpanel);
panel.add(hpanel2);
//
var submitHandler = app.createServerHandler("showCompletePage");
subbtn.addClickHandler(submitHandler);
submitHandler.addCallbackElement(panel);
//
app.add(panel);
ss.show(app);
}
//
function showCompletePage(){
var app = UiApp.getActiveApplication();
app.getElementById('rightPanel').setVisible(false);
var pnl = app.createVerticalPanel().setId('outro');
var text = "<p>Uw aanvraag is met succes verwerkt.</p>";
text += "<p>U zal zo meteen een offerte ontvangen via mail.<br />Verzeker u ervan dat de mail niet in uw spam toegekomen is.</p>";
text += "<p>Gelieve de offerte binnen de drie dagen terug te sturen, zodat uw reservatie definitief bevestigd kan worden.</p>";
pnl.add(app.createHTML(text).setId('final'));
var el = app.createButton('Klik hier indien u nog een opleiding wil reserveren').setId('anotherOne');
el.addClickHandler(app.createServerHandler("startAgain"));
app.add(pnl);
app.add(el);
return app;
}
function startAgain(e){
Logger.log('restart');
var app = UiApp.getActiveApplication();
app.getElementById('startAgain').setVisible(false);
app.getElementById('outro').setVisible(false);
buildUI();
return app;
}
contestado el 22 de mayo de 12 a las 17:05
Siguiendo el comentario de Henrique, volví a probar mi código de prueba y genera un error (extrañamente, no lo hizo la primera vez). Como de costumbre, Henrique tiene razón, la línea defectuosa en mi código de prueba es app.getElementById('startAgain').setVisible(false); perdón por no haberlo señalado. - serge insas
También creo que no es realmente una buena idea llamar a buildUI(); en su función de controlador 'comenzar de nuevo' ya que vuelve a crear la interfaz de usuario por completo ... sería más eficiente restaurar la existente o usar un proceso de mostrar/ocultar (vea este hilo:stackoverflow.com/questions/10564565/… ) - serge insas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas google-apps-script or haz tu propia pregunta.
Dado su último comentario, no creo que el elemento con Id de 'outro' exista o no tenga la función setVisible(); Esa ha sido mi experiencia. - mzimmerman
La
app.getElementById('startAgain').setVisible(false);
es la línea extraña para mí. No veo ningún elemento identificadostartAgain
. ¿Estás seguro de que no es la línea ofensiva? - Henrique G. Abreu