PDA

Ver la Versión Completa : Obtener el valor de una variable local de VBSCRIPT desde delphi.net


mamen
01-06-2005, 12:48:36
Hola a todos!!!. Tengo una aplicación web con delphi.net y asp.net. En una de las páginas aspx tengo incluido cósigo en VBScript, dentro de este tengo una variable nif local, quiero sacar el valor de esta variable local para poder utilizarlo en mi código delphi.

He probado ya, poniendo una entrada input y asignandole el valor de la variable y me da el error de que esta variable no ha sido definida, (uando si que la tengo definida)

<input type="text" name="niftit" value="<%=niftit%>"

Otra forma que he intentado es utilizar una variable de sesion, el problema que tengo con esta es que cuando me refiero a ella en el código delphi me dice que referencia a objeto no establecida como instancia del objeto, es decir, no me reconoce esa variable de sesion. ¿¿¿Qué puedo hacer?????. Ya no se me ocurre nada más, ¿¿¿¿Como puedo sacar ese valor???

__hector
01-06-2005, 15:01:27
pon el control que corra runat=server, o usa un boton de la clase webcontrols, para que puedas acceder a los valores que tiene el control.

mamen
02-06-2005, 13:27:47
¿Cómo es eso del botón ???? NO lo he entendido muy bien

__hector
02-06-2005, 15:12:14
En asp.net puedes trabajar con dos tipos de controles: los que corren en el servidor (webcontrols, miembros de system.web.ui.webcontrols) y los tradicionales controles HTML, como los botones y cajas de texto <input>

Esos controles html, mas bien sus propiedades, no se pueden acceder desde la parte de asp.net que ejecuta en el servidor, puesto que todas las propiedades son manejadas del lado del cliente, es decir, no se incluye una referencia al control y sus propiedades en el viewstate de la pagina.

Para subsanar eso, tienes que utilizar en vez de un <input type=button> o control botón de html en el webform, el equivalente boton de los WebControls, que tambien deben aparecer en la barra de componentes en el IDE de Delphi 2005 (no lo he usado)

Tambien puedes, seleccionar el boton y en sus propiedades (la pestaña de propiedades del objeto) ponerle la opcion runat en server, o, al menos en visualStudio, le das click derecho y aparece una opción que dice "run as server control".

Te ha quedado mas claro?

mamen
03-06-2005, 09:41:30
Muchas gracias, he entendido perfectamente la diferencia entre los controles de asp.net y los básicos de HTML.

El problema q tengo es que no entiendo muy bien por qué utilizar un botón de asp.net, si yo lo que quiero es utilizar un campo de texto y asignarle el valor de una variable asp.net.

__hector
03-06-2005, 14:49:25
... porque no puedes acceder desde el compilado (codebehind que genera la dll de tu aplicacion) a las variables de controles que NO corren en modo servidor (runat=server). Esto porque esos controles NO se guardan en el viewstate, tampoco sus propiedades, y NO puedes, desde la programacion en la pagina (fuente) hacer un Control.Propiedad = talcosa, porque te dara el error de que la referencia al objeto no existe.

Al mismo tiempo, un boton pura y simplemente html NO llama a la funcion __dopostback, asi que no refresca la pagina en cada clic haciendo un POST al servidor, por lo que cualquier codigo que hayas programado para el evento click del mismo en Delphi.NET (o cualquier lenguaje que ejecute ASP.NET) NO se ejecutara.

Es algo un poco diferente al clasico asp, lo que yo no entiendo es por que te traeria tantas complicaciones sustituir un boton por otro, si ambos se ven exactamente iguales.


Por cierto, nos das un poco de codigo de cuando te da la excepcion de Object reference.... <?>