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

Como llamar a función dentro un clase desde el archivo de diseño

Estas en el tema de Como llamar a función dentro un clase desde el archivo de diseño en el foro de ASPX (.net) en Foros del Web. Necesitaría llamar a una función definida dentro de una clase class1.vb desde el fichero de diseño (prueba.aspx). Desde el fichero prueba.aspx.vb no hay problemas. He ...
  #1 (permalink)  
Antiguo 18/12/2006, 03:38
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Como llamar a función dentro un clase desde el archivo de diseño

Necesitaría llamar a una función definida dentro de una clase class1.vb desde el fichero de diseño (prueba.aspx). Desde el fichero prueba.aspx.vb no hay problemas. He intentado de todo y no doy con ello.

Mi función es del tipo:
Public Shared Function Hola(ID as integer) As String
Return "Cliente: " & ID
End Function

Y para llamarla sería algo así (pero no funciona):
<%# Hola(DataBinder.Eval(Container.DataItem, "ID")) %>

Cualquier ayuda se agracede un montón.
  #2 (permalink)  
Antiguo 19/12/2006, 08:32
Avatar de javiermil  
Fecha de Ingreso: agosto-2004
Mensajes: 509
Antigüedad: 19 años, 8 meses
Puntos: 2
Re: Como llamar a función dentro un clase desde el archivo de diseño

Despues de la directiva page puedes colocar un import

<%@ Import Namespace="elquesea" %>


Prueba con eso.Saludos
  #3 (permalink)  
Antiguo 21/12/2006, 05:18
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Como llamar a función dentro un clase desde el archivo de diseño

Gracias por tu contestación, pero POR FAVOR, YA NO SE QUE PROBAR

He probado en la clase:
Namespace loquesea
Public Class Miclase
Public Function Mifuncion()
Return "HOLA"
End Function
End Class
End Namespace


Y en el fichero de diseño aspx:
<%@ Import Namespace="elquesea" %>
<html>
<body>
<form id="Form1" method="post" runat="server">
Valor devuelto:<% =Mifuncion() %>
</form>
</body>
</html>

Siempre el mismo error: No se ha declarado el nombre 'Mifuncion'.
  #4 (permalink)  
Antiguo 24/12/2006, 12:06
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Re: Como llamar a función dentro un clase desde el archivo de diseño

cheka esto:
<asp:TemplateField HeaderText="IGV">
<FooterTemplate>
<%#IgvTotal().ToString("N2")%>
</FooterTemplate>
<ItemStyle HorizontalAlign="Right" />
<ItemTemplate>
<%#IgvUnitario(Decimal.Parse(Eval("MONT_IGV").ToSt ring())).ToString("N2")%>
</ItemTemplate>
<FooterStyle Font-Bold="True" HorizontalAlign="Right" />
</asp:TemplateField>

De esa manera cualculo el IGV total dentro de un GridView, veras el uso de las funciones: IgvTotal e IgvUnitario, las cuales las tengo definidas en el codebehind de esta manera:

Dim IgvTot As Decimal = 0.0
Function IgvUnitario(ByVal valor As Decimal) As Decimal
IgvTot += valor
Return valor
End Function
Function IgvTotal() As Decimal
Return IgvTot
End Function

De estas forma es como realizao las llamdas a funciones, no deberias de tener ningun problema siempre en cuando lo hagas asi.

Slds. y Feliz Navidad
  #5 (permalink)  
Antiguo 24/12/2006, 12:43
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Como llamar a función dentro un clase desde el archivo de diseño

Gracias mabarcau, pero mi problema es que la función está definida dentro de una clase y no se como importarla desde el fichero de diseño.
  #6 (permalink)  
Antiguo 26/12/2006, 08:44
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Como llamar a función dentro un clase desde el archivo de diseño

te falta declarar tu funcion como de tipo shared para ser accesible sin necesidad de crear la instancia.. prueba de ésta forma:

Cita:
Namespace loquesea
Public Class Miclase
Public Shared Function Mifuncion()
Return "HOLA"
End Function
End Class
End Namespace
y luego (para probar)

Cita:
Valor devuelto:<% =loquesea.Miclase.Mifuncion() %>
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 26/12/2006, 11:06
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Como llamar a función dentro un clase desde el archivo de diseño

Gracias, pero sigue dando error:Mensaje de error del compilador: BC30451: No se ha declarado el nombre 'loquesea'. Lo pongo completo

Fichero diseño (webform1.aspx):
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Aces_Equipos.WebForm1"%>
<%@ Import Namespace="loquesea" %>
<html>
<head>
<title>WebForm1</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
Valor devuelto:<% =loquesea.Miclase.Mifuncion() %>
</form>
</body>
</html>

Fichero clase(class1.vb):
Namespace loquesea
Public Class Miclase
Public Shared Function Mifuncion()
Return "HOLA"
End Function
End Class
End Namespace
  #8 (permalink)  
Antiguo 08/01/2007, 02:40
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Como llamar a función dentro un clase desde el archivo de diseño

Por favor, puede alguien dar una pista?
  #9 (permalink)  
Antiguo 09/01/2007, 13:25
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Como llamar a función dentro un clase desde el archivo de diseño

realmente no veo el problema, porque yo lo he hecho de esa forma mil veces y me ha funcionado, pero solo quiero estar seguro de que tu archivo class1.vb está dentro de tu mismo proyecto

otra cosa, estás trabajando con 2003 o 2005 ? no quiero pensar que estas trabajando con 2005 y tu archivo de clase lo tengas fuera del AppCode o si???
  #10 (permalink)  
Antiguo 09/01/2007, 14:25
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: Como llamar a función dentro un clase desde el archivo de diseño

No te faltara el..

<%@ Import Namespace="EspacioDeNombreDeLaRaiz.loquesea" %>


???
  #11 (permalink)  
Antiguo 09/01/2007, 14:28
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: Como llamar a función dentro un clase desde el archivo de diseño

Recuerda que si estas en VB, los namespace te los genera automaticos, dale click derecho a tu proyecto web > propiedades -> Propiedades comunes -> general
  #12 (permalink)  
Antiguo 09/01/2007, 14:38
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Re: Como llamar a función dentro un clase desde el archivo de diseño

Ha.. si ciertamente deveria fe funcionar el vs2005, bueno, depende de que tipo de proyecto tengas... web site o web application.. ?
  #13 (permalink)  
Antiguo 18/12/2007, 03:03
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Re: Como llamar a función dentro un clase desde el archivo de diseño

SOLUCIONADO (muchas gracias a todos. )

Fichero diseño (webform1.aspx):
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Aces_Equipos.WebForm1"%>
<%@ Import Namespace="class1.Miclase" %>
<html><head><title>WebForm1</title></head>

<body>
<form id="Form1" method="post" runat="server">
<%# prueba("hola") %>
</form>
</body>
</html>

Fichero clase(class1.vb):

Public Class Miclase

PublicSharedFunction prueba(ByVal cad AsString) AsString
Return cad & "-OK-" & Len(cad)
EndFunction
End Class
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 03:36.