Foros del Web » Programando para Internet » ASPX (.net) »

llamar metodo desde pagina .aspx

Estas en el tema de llamar metodo desde pagina .aspx en el foro de ASPX (.net) en Foros del Web. Hola a todos. Soy programador PHP y me esta costando um poco entender la logica como se llama un metodo de una clase ASP.net Tengo ...
  #1 (permalink)  
Antiguo 27/08/2010, 15:00
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
llamar metodo desde pagina .aspx

Hola a todos. Soy programador PHP y me esta costando um poco entender la logica como se llama un metodo de una clase ASP.net

Tengo definido una clase basica en el fichero lib.aspx.vb con este contenido
Cita:
Public Class ParamMng
Function sessionParam(String parname, String def)
If !Empty(Session(parname) Then
Dim param as String param = Session(parname);
sessionParam = param;
Else
Session.Add(parname, def);
sessionParam = def;
End If
End Function

End Class
Ante nada hago esto en el index.aspx para que lo inclue en todas las paginas

Cita:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="../Core/lib.aspx.vb" %>
La llamada hago en un fichero head.aspx corriente que contiene codigo html de esta forma

Código HTML:
<%
Dim lang as String = ParamMng.sessionParam("lang" , "es");
%> 
El error que me da es este

Error de compilación
Descripción: Error durante la compilación de un recurso requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el código fuente en consecuencia.

Mensaje de error del compilador: BC30037: El carácter no es válido.
Línea 1: <%
Línea 2: Dim lang as String = ParamMng.sessionParam("lang" , "es");
Línea 3: %>
Línea 4: <div id="wrapper">

No se por donde empezar en realidad.
Gracias a todos por adelantado.
  #2 (permalink)  
Antiguo 27/08/2010, 15:21
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: llamar metodo desde pagina .aspx

Hola vkapyrina tarataré de aclararte un poco:

Primero que nada veo que el codigo lo tienes en un elemento lib.aspx.vb, eso quiere decir que debe existir una pagina llamada lib.aspx de tal forma que esa funcion solo estará disponible para esa pagina y no podrás accederla desde otra.

El error empieza acá
Cita:
Ante nada hago esto en el index.aspx para que lo inclue en todas las paginas
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="../Core/lib.aspx.vb" %>
Porque? Porque tal como te comente estas diciendole a la pagina index que su code behind será un elemento que le pertenece a otra página y eso no se puede dar, ya que index.aspx tiene su propio elemento, por ejemplo index.aspx.vb.

Si lo que deseas es que esa funcion este accesible desde cualquier pagina debes crear una clase y hacer lo siguiente:

Para acceder a una clase en asp.net hay dos maneras:
1. Crear una instancia de la clase: esto se hace de la siguiente forma:
Código ASP:
Ver original
  1. Dim Class as new ParamMng
y luego la accedes así: Class.sessionParam

2. Agregando un NameSpace
Por ejemplo
Código ASP:
Ver original
  1. 'asi deberia lucir tu clase
  2. Namespace prueba
  3. Public Class ParamMng
  4. Function sessionParam
  5. end function
  6. end class
  7. end namespace

Entonces la accedes de la forma: Namespace.Clase.Metodo, por ejemplo

Código ASP:
Ver original
  1. Prueba.ParamMng.sessionParam
Trata de evitar esto
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="../Core/lib.aspx.vb" %>

Espero haberte ayudado un poco.

Saludos,
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #3 (permalink)  
Antiguo 27/08/2010, 15:43
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: llamar metodo desde pagina .aspx

Gracias jaullo!

He añadido namespace en la clase ParamMng en el fichero lib.aspx

Ahora que asi

Cita:
Namespace Params
Public Class ParamMng
Function sessionParam(String parname, String def)
If !Empty(Session(parname) Then
Dim param as String param = Session(parname);
sessionParam = param;
Else
Session.Add(parname, def);
sessionParam = def;
End If
End Function

End Class
End namespace

He borrado referencia
Cita:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="../Core/lib.aspx.vb" %>
y he anadido

Cita:
<!--#include file="../Core/lib.aspx"-->

Y he llamado a metodo de esta forma

Cita:
Dim lang as String = Params.ParamMng.sessionParam("lang" , "es")
Pero me da error No se ha declarado el nombre 'Params'.
Algo sigo haciendo mal

Gracias.
  #4 (permalink)  
Antiguo 27/08/2010, 16:30
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: llamar metodo desde pagina .aspx

Eso es porque todavia estas haciendo referencia a un metodo que estra dentro del archivo de codigo de otra pagina.

Lo que debes hacer es click derecho sobre tu proyecto, agregar, y seleccionar clase. Luego creas esto:
Código ASP:
Ver original
  1. Namespace Params
  2. Public Class ParamMng
  3. Function sessionParam(String parname, String def)
  4. If !Empty(Session(parname) Then
  5. Dim param as String param = Session(parname);
  6. sessionParam = param;
  7. Else
  8. Session.Add(parname, def);
  9. sessionParam = def;
  10. End If
  11. End Function
  12.  
  13. End Class
  14. End namespace

Dentro de esa clase.

Luego vas a tu pagina, no es necesario esto: <!--#include file="../Core/lib.aspx"-->
y esto si esta bien
Código ASP:
Ver original
  1. Dim lang as String = Params.ParamMng.sessionParam("lang" , "es")

Ha diferencia de Php no es necesario que hagas un Include de la Clase, por defecto el sabe ya que existe. Pero nuevamente te repito no puedes acceder a un metodo que se encuentre en otra pagina.
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #5 (permalink)  
Antiguo 28/08/2010, 03:42
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: llamar metodo desde pagina .aspx

Gracias de nuevo jaullo, pero estoy segura que no vea la clase mi pagina aspx.
Me da error de compiliacion

Cita:
BC30451: No se ha declarado el nombre 'Params'
Cita:
He creado el vichero .vb con este contenido
Namespace Params
Public Class ParamMng
Function sessionParam(String parname, String def)
If !Empty(Session(parname) Then
Dim param as String param = Session(parname);
sessionParam = param;
Else
sessionParam = def;
End If
End Function
End Class
End namespace
Si no se ha declarado Params es que no lo encuentra. O hay que iniciar la clase antes? En php hay que iniciar la instancia, quizas aqui tambien.

Yo el poryecto lo estoy haciendo en eclipse que no tiene soporte de ASP.net o sea que estoy creando ficheros a mano. No puedo hacer "add class".

Gracias
  #6 (permalink)  
Antiguo 28/08/2010, 17:17
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: llamar metodo desde pagina .aspx

Coloca tu proyecto en algun sitio en donde pueda descargarlo y me indicas.

Ahora que me comentas Eclipse, entonces por ahi puede venir el problema. Mi recomendación es que mejor utilices algún editor propio del lenguaje, de esa forma tendras soporte para todas las operaciones.

Puedes usar las versiones express
http://www.microsoft.com/express/Downloads/
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #7 (permalink)  
Antiguo 29/08/2010, 19:06
Avatar de azuljar  
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
De acuerdo Respuesta: llamar metodo desde pagina .aspx

Cita:
Iniciado por jaullo Ver Mensaje
Eso es porque todavia estas haciendo referencia a un metodo que estra dentro del archivo de codigo de otra pagina.

Lo que debes hacer es click derecho sobre tu proyecto, agregar, y seleccionar clase. Luego creas esto:
Código ASP:
Ver original
  1. Namespace Params
  2. Public Class ParamMng
  3. Function sessionParam(String parname, String def)
  4. If !Empty(Session(parname) Then
  5. Dim param as String param = Session(parname);
  6. sessionParam = param;
  7. Else
  8. Session.Add(parname, def);
  9. sessionParam = def;
  10. End If
  11. End Function
  12.  
  13.  
  14. estoy de acuerdo contigo me parece una buena solucion
  15.  
  16. End Class
  17. End namespace

Dentro de esa clase.

Luego vas a tu pagina, no es necesario esto: <!--#include file="../Core/lib.aspx"-->
y esto si esta bien
Código ASP:
Ver original
  1. Dim lang as String = Params.ParamMng.sessionParam("lang" , "es")

Ha diferencia de Php no es necesario que hagas un Include de la Clase, por defecto el sabe ya que existe. Pero nuevamente te repito no puedes acceder a un metodo que se encuentre en otra pagina.
  #8 (permalink)  
Antiguo 29/08/2010, 19:08
Avatar de azuljar  
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: llamar metodo desde pagina .aspx

tambien puedes encontrar otras soluciones sobre [URL="http://jalayo.wordpress.com/"]desarrollo web [/URL]

Etiquetas: aspx, llamar, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:25.