• Viernes 8 de Noviembre de 2024, 17:43

Autor Tema:  Crear Clases Propias...  (Leído 4834 veces)

ErWillem

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Crear Clases Propias...
« en: Lunes 6 de Febrero de 2006, 22:16 »
0
Buenas amigos, inicie hace poco tiempo con ASP.NET asi que les pido algo de paciencia...
--------------------------------------------
Ya que al parecer no me di a entender lo suficientemente bien al explicar lo que quiero pues decidi editar la pregunta... sin quitar el contenido inicial por si a alguien le es util la informacion.

En realidad lo que quiero es lo siguiente: En visual basic 6.0, C, C++ y en muchos otros compiladores siempre existen los modulos, que son utilizados para crear funciones comunes y elemento que puedan ser reutilizados, esto con la intención de reducir codigo y ademas de que este pueda ser reutilizado en otros proyectos o en otras faces del mismo...

Yo deceo hacer lo mismo en ASP.NET, estoy trabajandolo con visual basic.net 2003, me explicaron una manera la cual coloqué más abajo como ejemplo, y no se si esa sea la manera correcta o la mas optima pero me pareció bastante sencilla, el problema es que no me funciona. Si existe un metodo mas facil y efectivo o me pueden ayudar a solucionarlo acepto sugerencias, y les agradeceré mucho su pronta ayuda, estoy bastante atrasado en el proyecto...

--------------------------------------------

Tengo un problema al crear mis propias clases, quizas alguno me pueda ayudar debe faltar alguna tonteria.

Ok el detalle es que genero la solucion del proyecto y me dice que todo esta en orden, no da errores de codigo ni nada... pero al momento de abrir la pagina nada que ver. Mi codigo fue el siguiente, es bastante simple porque solo era una prueba. Primero hice un archivo llamado "prueba.vb" con esta clase:

Código: Text
  1. Public Class prueba
  2.     Inherits System.Web.UI.Page
  3.     Sub alerta()
  4.         Response.Write("<script Language=""JavaScript""> alert ('Prueba') </Script>")
  5.     End Sub
  6. End Class
  7.  

luego en la pagina, despues del Inherit coloco lo siguiente:

Código: Text
  1.     Dim a As New prueba
  2.  

y por ultimo el llamado lo hago asi:

Código: Text
  1.         a.alerta()
  2.  

la cuestion es que compila bien pero me da un error y resalta la siguiente linea:

Citar
Response.Write("<script Language=""JavaScript""> alert ('Prueba')

y mas abajo da este error:
Citar
Seguimiento de la pila:


[HttpException (0x80004005): Respuesta no disponible en este contexto.]
   System.Web.UI.Page.get_Response()
   _7xnetv1._0.FuncionesBasicas.ValidarSesion(Label& usuario, Label& fecha, Label& host) in c:\inetpub\wwwroot\7xnetv1.0\FuncionesBasicas.vb:12
   _7xnetv1._0.MenuRegistroDeUsuarios.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\7xnetv1.0\MenuRegistroDeUsuarios.aspx.vb:42
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()

si alguien me puede ayudar por favor se lo agradeceria  :(
Enlace a mis programas realizados durante mis estudios.
--------------------------------------------------------------
Si la vida te da limones, pide sal y tequila.

La fe mueve montañas, pero hay que pagar.

El ser humano es el unico que tropieza dos veces con la misma piedra.

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Crear Clases Propias...
« Respuesta #1 en: Lunes 6 de Febrero de 2006, 23:28 »
0
Para ejecutar JavaScript en ASP.NET primero debes registrarlo del lado del cliente.

Para eso puedes usar las siguientes propiedades: Page.RegisterStartupScript o Page.RegisterClientScriptBlock.

Revisa los siguientes artìculos: Insertar código JavaScript en paginas ASP.Net

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

ErWillem

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Crear Clases Propias...
« Respuesta #2 en: Martes 7 de Febrero de 2006, 15:01 »
0
Ok gracias amigo, me sera util esa información, pero en este instante ese no es el problema... Ya que en el ejemplo lo que estoy haciendo es un llamado a la funcion "response" que es muy parecida a lo que me dices, y de igual manera el codigo javascript se genera es en la pagina resultante como HTML. El error principal es este:

Citar
[HttpException (0x80004005): Respuesta no disponible en este contexto.]
  System.Web.UI.Page.get_Response()

El responce no esta funcionando porque dice que no esta disponible...

Si escribo en la pagina el contenido de la funcion tal cual como lo escribí aqui funciona perfectamente, la primera ves que pase esto a una clase me funciono sin ningun problema, pero al dia siguiente dejo de funcionar, y a partir de ese momento no he logrado implementar ninguna clase externa...

Ahora cualquier funcion del ASP.NET que llamo desde la clase me da error, ya hice varias pruebas (como dije ese era solo un ejemplos).

En eso es que necesito ayuda: ¿Como C#$% hago para llamar a una clase externa? ¿Estoy haciendo algo mal o me hace falta agregar alguna instruccion en algun lugar especifico? Disculpen el todo pero estoy desesperado.
Enlace a mis programas realizados durante mis estudios.
--------------------------------------------------------------
Si la vida te da limones, pide sal y tequila.

La fe mueve montañas, pero hay que pagar.

El ser humano es el unico que tropieza dos veces con la misma piedra.

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Crear Clases Propias...
« Respuesta #3 en: Miércoles 8 de Febrero de 2006, 15:08 »
0
Holas!

Hay que diferenciar dos tipos de problemas: El acceso a clases y errores especificos.

El acceso a clases se debe poder hacer sin ningun problemas. Si algo esta fallando es porque debistes haber omitido algun concepto en tu diseño de clases.

Con respecto algunas fuentes dicen que agregues esta directiva a tu archivo web.config, dentro de systemweb:

<system.web>
   <trust level="Full" originUrl=""/>
</system.web>

Por favor, me avisas si solucionastes el problema del contexto.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

ErWillem

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Crear Clases Propias...
« Respuesta #4 en: Miércoles 8 de Febrero de 2006, 19:32 »
0
Cita de: "sergiotarrillo"
Con respecto algunas fuentes dicen que agregues esta directiva a tu archivo web.config, dentro de systemweb:

<system.web>
   <trust level="Full" originUrl=""/>
</system.web>

Por favor, me avisas si solucionastes el problema del contexto.
 
Muchisimas gracias, me fuiste de mucha utilidad ese era todo el problema.

Lo que ocurre es que el proyecto lo estamos diseñando entre dos y probablemente mi compañero perdio esa parte al restaurar un respaldo, y como a el fue al que le dieron la informacion y por MSN pues ni modo, yo sabia que faltava algo porque lo escuche decirlo pero no sabia que era...

Bueno, mucho drama  &lt;_&lt; ya debo aburrirlos... Muchas gracias sergiotarrillo te debo una. Hasta la proxima :hola:
Enlace a mis programas realizados durante mis estudios.
--------------------------------------------------------------
Si la vida te da limones, pide sal y tequila.

La fe mueve montañas, pero hay que pagar.

El ser humano es el unico que tropieza dos veces con la misma piedra.

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Crear Clases Propias...
« Respuesta #5 en: Jueves 9 de Febrero de 2006, 15:12 »
0
Chevere!

Cualquier duda que tengas mandalas. Todos aprendemos con una pregunta.

Saludos,


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

ErWillem

  • Miembro activo
  • **
  • Mensajes: 55
    • Ver Perfil
Re: Crear Clases Propias...
« Respuesta #6 en: Viernes 10 de Febrero de 2006, 21:55 »
0
Bueno despues tuve otros problemitas pero ya se deben a que estaba llamando a la funcion "responce" que pertenece a "Page" y esa es una clase no una pagina... pero haye la solución y como quizas a alguno le intereza aqui les dejo una pequeña guia de como hacer...

este ejemplo esta hecho especificamente con una referencia a la clase Page, pero les podra servir para otras cosas... quizas haya otra manera pero esta fue la que se me ocurrio para salir rapido del problema y me funciono muy bien  :P

Yo estoy trabajandolo ASP.NET con visual basic asi que les pondre el codigo en ese formato.

primero este es aproximadalente el formato que debe tener la clase:

Código: Text
  1. public class nombre_clase
  2. ...
  3.     Dim p As New Page
  4. ...
  5.     Sub New(ByVal pagina As Page)
  6.         p = pagina
  7.     End Sub
  8. ...
  9.    Public Sub Proc1()...
  10. ...
  11.    Public Function Funcion1() as integer...
  12. ...
  13. End Class
  14.  
  15.  

Para el que no lo sepa, en este caso "Sub New" indica que "New" es un procedimiento (leyeron bien: procedimiento) que hace de constructor, permitiendome pasarle como parametro la pagina de donde será llamada la clase...

Para utilizar cualquier funcion, propiedad o procedimiento de la pagina "dentro de la clase" solo hay que manipularlo con la variable "p" de esta forma:

Código: Text
  1.      x = p.Function(p1,p2,...)
  2. ó
  3.      p.propiedad=y
  4. ó
  5.     p.procedimiento()
  6.  
  7.  
Creo que mas facil imposible...
y la clase se llamaria desde la pagina creando un objeto pasandole como parametro "Me" y se usaria de la siguiente forma:

Código: Text
  1.     Dim obj As New nombre_clase(Me)
  2. ...
  3.     obj.Proc1()
  4. ...
  5.     If obj.Function1()=1 then ....
  6.  
  7.  

"Me" representa a la pagina desde donde se esta creando el objeto de tipo "nombre_clase", en este caso se sobreentiende que se debe llamar desde una pagina o no funcionará ya que el parametro del constructor es de tipo "Page", pero como les dije puede ser utilizado para otros motivos, depende de su ingenio y necesidades...

Espero que los ejemplos les sean de utilidad para entenderlo mas facil, porque en ocaciones soy malo para darme a entender por palabras  :whistling:
Enlace a mis programas realizados durante mis estudios.
--------------------------------------------------------------
Si la vida te da limones, pide sal y tequila.

La fe mueve montañas, pero hay que pagar.

El ser humano es el unico que tropieza dos veces con la misma piedra.

hellscream

  • Miembro activo
  • **
  • Mensajes: 95
    • Ver Perfil
Re: Crear Clases Propias...
« Respuesta #7 en: Domingo 12 de Febrero de 2006, 19:32 »
0
Para que tu ejemplo inicial funcione, simplemente podías haber utilizado:

HttpContext.Current.Response.Write("<script Language=""JavaScript""> alert ('Prueba') </Script>")