Ver Mensaje Individual
  #13 (permalink)  
Antiguo 09/12/2008, 09:12
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 5 meses
Puntos: 146
Respuesta: como hago esto en asp ?

¿cuál función?

¿del objeto dictionary?

Bueno, es sencillo encontrarle utilidad, donde quiera que ocupes relacionar una llave con un valor es posible usarlo, por ejemplo puedes utilizarlo para mostrar o no los controles a los que un usuario tiene acceso según sus permisos, algo como esto:

Código asp:
Ver original
  1. <&#37;
  2. Class UsuarioClass
  3.     Public objDicPantallas
  4.         ...
  5.     Private Sub Class_Initialize()
  6.        ...
  7.              set objDicPantallas = Server.CreateObject("Scripting.Dictionary")
  8.     End Sub
  9.         ...
  10.     Private Sub Class_Terminate()
  11.             ...
  12.         Set objDicPantallas = Nothing
  13.     End Sub
  14.        
  15.     Public Function PantallasValidas(PantallaID)
  16.         ...
  17.     Query = "SELECT ....."
  18.     adoRs.Open Query, con
  19.         IF NOT adoRs.EOF Then
  20.        rsControlesXPantalla = adoRS.GetRows
  21.              objDicPantallas.RemoveAll
  22.              For i=0 to UBound(rsControlesXPantalla,2)
  23.                  objDicPantallas.Add rsControlesXPantalla(0,i), rsControlesXPantalla(3,i)&"|"&rsControlesXPantalla(1,i)&"|"&rsControlesXPantalla(2,i)
  24.        Next
  25.              ...             
  26.         End IF
  27.         ...
  28.         End Function
  29. End Class  
  30.  
  31. set ObjUsuario = new UsuarioClass
  32. ObjUsuario.RequestID = Session("Login")
  33. ObjUsuario.Password = Session("Password")
  34. ...
  35. ObjUsuario.PantallasValidas(1)
  36.  
  37. if Not ObjUsuario.objDicPantallas.Exists("1.1.1") Then Permiso1_1_1 = " style='display:none' " End If 'btn Eliminar, por ejemplo
  38. if Not ObjUsuario.objDicPantallas.Exists("1.1.2") Then Permiso1_1_2 = " style='display:none' " End If 'btn Editar, por ejemplo
  39. if Not ObjUsuario.objDicPantallas.Exists("1.1.3") Then Permiso1_1_3 = " style='display:none' " End If 'btn Agregar, por ejemplo
  40. %>

Primero se crea una clase con un método que llene el objeto, y luego simplemente se usa, ya que fue declarado como público; se le pudo dar un nivel más alto de encapsulamiento pero para efectos didacticos creo que es suficiente. Las variables Permiso1_1_n se colocan dentro de los controles HTML correspondientes y listo.

Saludos!