Modificar y mostrar texto de etiqueta en Forma Web

10/02/2007 - 08:14 por Edgardo Vazquez | Informe spam
Hola, soy nuevo con vb.net, con la pregunta que voy a hacer se va a
notar bastante. :) Haganme notar si omito o declaro algo mal.

Tengo una duda que creo que es sencilla, he andado buscando por 'todos'
lados buscando una respuesta. Si este no es el grupo mil disculpas.

Utilizando un ejemplo.
Tengo una simple forma web con una etiqueta y 1 boton.
http://img297.imageshack.us/img297/7659/100gy4.jpg

La grafica mencionada arriba parece que muestra 2 etiquetas y botones
pero es en realidad el antes y despues.

Quiero mostrar en la etiqueta como va cambiando un contador. Entiendo
que el contador en el ejemplo pasaria muy rapido, pero la idea es para
mostrar un avance en otro proceso que quiero hacer despues.

Si doy click al boton, la etiqueta solo muestra el numero final, cuando
termina el evento de Button1_Click.

Este es el codigo html y el 'code-behind':

<HTML>
<HEAD>
<title>Iteraciones</title>
<META content="" name="keywords">
<META content="" name="description">
</HEAD>
<BODY MS_POSITIONING="FlowLayout">
<form id="Form1" method="post" runat="server">
<TABLE cellSpacing="0" cellPadding="0" width="800" border="0">
</TABLE>
<asp:label id="Label1" runat="server" text="texto"></asp:label>
<asp:button id="Button1" runat="server" Text="Boton">
</asp:button>
</form>
</BODY>
</HTML>


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim ctr As New Integer
For ctr = 1 To 100
Label1.Text = CStr(ctr)
Next
End Sub
End Class

Quiero que el id Label1 cambie de texto en cada iteracion y que este
cambio se muestre en pantalla.

Habia leido sobre .refresh() o DoEvent pero al parecer no aplican a
formas web.

Tambien lei que la pregunta va mas enfocada a asp o que creando una
funcion en javascript se soluciona mi pregunta.

¿Alguien me puede ayudar u orientar?

Gracias.

Posted via a free Usenet account from http://www.teranews.com
 

Leer las respuestas

#1 Alberto Poblacion
10/02/2007 - 18:21 | Informe spam
"Edgardo Vazquez" wrote in message
news:
[...] Este es el codigo html y el 'code-behind':

[...] Button1.Click
Dim ctr As New Integer
For ctr = 1 To 100
Label1.Text = CStr(ctr)
Next
End Sub

Quiero que el id Label1 cambie de texto en cada iteracion y que este
cambio se muestre en pantalla.

Tambien lei que la pregunta va mas enfocada a asp o que creando una
funcion en javascript se soluciona mi pregunta.



Vamos a ver, tienes en mente el funcionamiento de un formulario Windows
y no te das cuenta de que en web las cosas son muy distintas. En windows la
pantalla que visualiza el código coincide con el motor que lo va ejecutando,
por lo que es posible visualizar sobre la marcha todo lo que ejecutas. Pero
en Web estamos hablando de dos ordenadores distintos: Uno es el que ejecuta
el código en VB.Net, y otro es el que tiene el navegador que visualiza el
resultado. En la máquina que ejecuta el código, el resultado de ejecutarlo
es un documento HTML. Ese documento se transmite al navegador y entonces el
navegador muestra el resultado final codificado en ese documento. Por lo
tanto no se puede ir viendo cómo cambia el label.

Para que "vaya cambiando" algo en el navegador, hace falta que el código
que hace esos cambios se ejecute en el navegador, en lugar de en el
servidor. Sin embargo, en el navegador no se puede ejecutar código en
VB.Net; hay que usar algún lenguaje que el navegador soporte. El más
universalmente extendido entre los navegadores es javascript. Si sabes
javascript, puedes escribir en un documento html una rutina que vaya
cambiando un texto en pantalla.

Y si no sabes javascript, hay una forma de conseguir que el Visual
Studio lo genere por tí: Se llama AJAX, y puedes descargar la versión de
Microsoft desde http://ajax.asp.net. Cuando lo instales en el Visual Studio,
te aparecerán unos controles en la paleta de herramientas que antes no
estaban, y si los arrastras a tu página generan internamente el código
javascript necesario para que la página se conecte con el servidor y pueda
refrescar dinámicamente el contenido de la pantalla llamando para ello si
así lo configuras a una subrutina en VB.Net en el servidor. En la misma
dirección ajax.asp.net tienes manuales y una serie de tutoriales (en
inglés).

Preguntas similares