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

Como enviar un parametro a un control de usuario desde la pagina implementada

Estas en el tema de Como enviar un parametro a un control de usuario desde la pagina implementada en el foro de ASPX (.net) en Foros del Web. hola comunidada hace mucho ke no los visitaba ya han crecido bastante felicidades a toda la comunidad!!!! Necesito de su ayuda bueno si me kieren ...
  #1 (permalink)  
Antiguo 06/11/2009, 00:31
Avatar de krakxp  
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 10 meses
Puntos: 0
80 % Solucionado: Como enviar un parametro a un ... pero kiero otra solucion

hola comunidada hace mucho ke no los visitaba ya han crecido bastante felicidades a toda la comunidad!!!!

Necesito de su ayuda bueno si me kieren ayudar y si pueden claro, porke miren tengo una duda con respecto a como "implementar un control de usuario (login) ke tiene en su funcion una variable ke tiene ke ser parametrizada y ke se debe enviar su valor desde la clase de la pagina donde se implementa el control".

Chequen eee, el reto es este, hice un control de usuario de login ke tiene 3 controles ya sabran:
textbox = TxtUsu
textbox = TxtPass
boton = btnLogin
Y ya se komo recuperar lo ke kapturo el usuario en los texbox y como llamar el boton del login del control, bueno todo eso esta leve porke se hace en el vb del control y es relativamente sencillo:

Código:
Private _usuario As String
   Private _contraseña As String
 
   Public ReadOnly Property Usuario() As String
        Get
           Return Me.TxtUsu.Text
        End Get
   End Property
 
   Public ReadOnly Property Contraseña() As String
        Get
           Return Me.TxtPass.Text
        End Get
   End Property
 
'Funcion ke retorna un objeto
Public Function Login() As Object
 
       Dim oRes As Object = Nothing
 
       Dim CLusuario As New CLUsuarios
        Dim sRes, sUsu, sPass As String

       sUsu = Me.usuario
      sPass = Me.contraseña
 
      dim variabletiposistema as integer= 2
      sRes = CLusuario.GetLogUsu(variabletiposistema, sUsu, sPass)
 
     If sRes <> "" Then
                LblErr.Text = sRes
               oRes = Nothing
      Else
               LblErr.Text = "ok"
                oRes = usuario              
     End If
 
     Return oRes
 
End Function

Public Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Login()
End Sub
Ok todo eso va en el vb del control y furula chido ya ke recupera el valor de los txt y puede hacer el logeo chido y asi lo implemente en la pagina:
Código:
       Dim oUsu As Object = Me.WebLogin1.Login()
       If Not oUsu Is Nothing Then
           Response.Write("si existe el usuario")
       Else
           Response.Write("mojojojo")
       End If
Ok hasta aki todo chido chido chido chidooo. Pero yo necesito saber a ke sistema se kiere logear (sin tener ke pedirle al usuario mediante un combo u otro control),
a ke sistema se kiere logear por lo tanto agrege una enumeracion, para ke el developer diga aaaaaaa a este sistema se va a logear, y lo ke hice fue agregar esto:

Código:
 Enum sisMexico
         SDSPM = 1
        SICEEF = 2
         SIEP = 3
        SIP = 4
         SISGESCOR = 5
    End Enum
y entonces ahora creo otra funcion pero esta parametrizada, ya ke recibe un valor de la enumeracion como parametro y entonces dicha funcion keda asi!!

Código:
 'login parametrizado con una variable tipo enumeracion 
     Public Function Login(ByVal Sistema As sisMexico) As Object

         Dim oRes As Object = Nothing

         If Sistema <> 0 Then

             Dim CLusuario As New CLUsuarios
            Dim sRes, sUsu, sPass As String
 
            sUsu = Me.usuario
             sPass = Me.contraseña
            sRes = CLusuario.GetLogUsu(Sistema, sUsu, sPass)
             If sRes <> "" Then
                LblErr.Text = sRes
                 oRes = Nothing
            Else
                 LblErr.Text = ""
                oRes = usuario
             End If
        End If
 
        Return oRes
 
    End Function
y ok ahora asi es como la implemento (la hice de 2 formas, y ninguna de las 2 keda chalessss).

1.- por medio de funcion parametrizada con una enumeracion, no furula porke en el vb del control de usuario recibe un cero y eso no debe de ser.

Código:
Protected Sub LoginButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
 
        Dim oUsu As Object = Me.WebLogin1.Login(sisMexico.sistemas.SICEEF)
         If Not oUsu Is Nothing Then
            Response.Write("no existe")
         Else
            Response.Write("mojojojo")
         End If

     End Sub

2.- y por medio de una propiedad  ke agrege en el vb del control de usuario,

    Private _sistema As Integer
     Public Property Sistema() As Integer
        Get
             Return _sistema
        End Get
         Set(ByVal value As Integer)
            _sistema = value
         End Set
    End Property
 
    'login en base a una propiedad, sin parametros
     Public Function Login() As Object

         Dim oRes As Object = Nothing

         If Sistema <> 0 Then

             Dim CLusuario As New CLUsuarios
            Dim sRes, sUsu, sPass As String
 
            sUsu = Me.usuario
             sPass = Me.contraseña
            sRes = CLusuario.GetLogUsu(sistema, sUsu, sPass)
             If sRes <> "" Then
                LblErr.Text = sRes
                 oRes = Nothing
            Else
                 LblErr.Text = ""
                oRes = usuario
             End If
        End If
 
        Return oRes
 
    End Function
pero tampoco furula en la implementacion porke la propiedad dice ke es cero y eso no debe de ser.

Código:
        WebLogin1.Sistema = sisMexico.sistemas.SICEEF
        Dim oUsu As Object = Me.WebLogin1.Login()
         If Not oUsu Is Nothing Then
            Response.Write("no existe")
         Else
            Response.Write("mojojojo")
         End If
Ahora la pregunta del millon es como carambas le paso ese valor a la funcion o la clase vb del control, porke siempre obtengo un 0 en la variabe sistema de aki abajo

CLusuario.GetLogUsu(sistema, sUsu, sPass)

!!!!!?

y pos no se me ocurre nadaaa, como ven alguna idea !!!!!?

gracias por leer el post, jejeje ,espero ke me haya dado a enteder !!!!!!

gracias por todo y adios

Última edición por krakxp; 09/11/2009 a las 11:14 Razón: se cambio de titulo!!!!
  #2 (permalink)  
Antiguo 09/11/2009, 07:43
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Como enviar un parametro a un control de usuario desde la pagina implement

Prueba con esto, hay una parte donde le asignas el valor a la propiedad sistema..
Código:
 WebLogin1.Sistema = SisOSFEM.sistemas.SICEEF
        Dim oUsu As Object = Me.WebLogin1.Login()
         If Not oUsu Is Nothing Then
            Response.Write("no existe")
         Else
            Response.Write("mojojojo")
         End If
Pon esto. (tienes que parsear a INT)
PD: no programo en VB asi que revisar el codigo..

Código:
 WebLogin1.Sistema = (int)SisOSFEM.sistemas.SICEEF
Si no te funciona y si trabajas con ASP.NET la propiedad Sistema trabajala con ViewState["_sistema"]...

Saludos
__________________
s[K]eL
  #3 (permalink)  
Antiguo 09/11/2009, 10:47
Avatar de krakxp  
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 10 meses
Puntos: 0
80% Solucionado pero usando un control, aun asi no estoy satisfecho con la solucion!!

Hola gracias por contestar, pero mira ya habia hecho eso de usar la propiedad del control

Código:
 WebLogin1.Sistema = sisMexico.sistemas.SICEEF
pero no funciono, ya ke siempre me recibe un nothing, aunke kreo ke tendre ke practicar mas mi uso de enumeraciones.

Lo ke hice para arregarlo fue esto:

Código:
    
   Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            'Llena combo
            Dim dvNotRem As DataView
            Dim sistema As New Sistema
            dvNotRem = sistema.GetSisSEM()
            If dvNotRem Is Nothing Then
                Me.LblErr.Text = "Por el momento el sistema no puede accesar a la Base de Datos"
            ElseIf dvNotRem.Table.Rows.Count = 0 Then
                Me.LblErr.Text = "Por el momento el sistema no encuentra ningun sistema en la Base de Datos<br>GetSisNETOSFEM"
            Else 
                With Me.ddlSisSEM
                      .DataSource = dvNotRem
                      .DataValueField = dvNotRem.Table.Columns(0).ColumnName
                      .DataTextField = dvNotRem.Table.Columns(1).ColumnName
                      .DataBind()
                      .Visible = True
                End With
        End If
    End Sub
        End If
       End Sub

   Public Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Login()
    End Sub

    Public Property SistemaSelected() As String
        Get
            Return Me.ddlSisSEM.SelectedValue
        End Get
        Set(ByVal value As String)
            _sistemaSelected = value
        End Set
    End Property

'login en base a una propiedad, sin parametros
    Public Function Login() As Object

        Dim oRes As Object = Nothing

        If SistemaSelected <> 0 Then

            Dim user As New CLUsuarios
            Dim sRes, sUsu, sPass, sSys As String

            sUsu = Me.Usuario
            sPass = Me.Contraseña
            sSys = Me.SistemaSelected

            sRes = user.GetLogUsu(sSys, sUsu, sPass)
            If sRes <> "" Then
                LblErr.Text = sRes
                oRes = Nothing
            Else
                LblErr.Text = "ok"
                oRes = user
              
            End If
        End If

        Return oRes

    End Function
Y ya esata parcialmente solucionaDo en un 80% pero aun asi no estoy satisfecho con la solucion!!!!,

porke el usuario puede ver el combo y puede elegir alguna opcion y eso no me gusta!!!!

Gracias a todos,
pero sigo esperando una respuesta alternativa usando enumeraciones y/o propiedades, alguien sabe!!!!?

Última edición por krakxp; 09/11/2009 a las 11:15
  #4 (permalink)  
Antiguo 09/11/2009, 11:43
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Como enviar un parametro a un control de usuario desde la pagina implement

Pero si quieres eliminar el combo, como vas a saber a que sistema quiere ingresar el usuario, lo tienes en la base de datos o alguna otra forma????
__________________
s[K]eL
  #5 (permalink)  
Antiguo 09/11/2009, 13:46
Avatar de krakxp  
Fecha de Ingreso: junio-2006
Ubicación: NA
Mensajes: 105
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Como enviar un parametro a un control de usuario desde la pagina implement

Cita:
Iniciado por skel363 Ver Mensaje
Pero si quieres eliminar el combo, como vas a saber a que sistema quiere ingresar el usuario, lo tienes en la base de datos o alguna otra forma????
el combo lo lleno de la BD pero por lo mientras funciona con el combo y no lo kiero eliminar, pero por lo menos kisiera fuera invisible pero si es asi no furula si lo dejo si en forma invisible!!!
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 08:41.