Con frecuencia mostramos listados de enlaces procedentes de consultas en una base de datos. Por ejemplo, cuando se realiza una búsqueda en un sitio web, se presenta al usuario los enlaces de los contenidos de la web que cumplen los criterios de búsqueda que el usuario ha seleccionado.
Con el siguiente código vamos a implementar un método que recibe un objeto de la clase DataSet
que contendrá la lista de enlaces que se van a mostrar y nos devolverá un objeto de la clase String
con el código HTML correspondiente a la lista de enlaces.
El método recibirá 5 parámetros:
ds
: Un objeto de la claseDataSet
, que contendrá la información de los enlacestexto
: Un objeto de la claseString
. Es el nombre de la columna delDataSet
que tendrá el texto del enlaceenlace
: Un objeto de la claseString
. Es el nombre de la columna delDataSet
que tendrá la dirección del enlacetitle
: Un objeto de la claseString
. Es el nombre de la columna delDataSet
que tendrá el título del enlace. El título de un enlace es un texto que se puede añadir para complementar el texto de dicho enlace, y facilitar información acerca del mismo. Es recomendable su uso desde un punto de vista de accesibilidad websiVacio
: Un objeto de la claseString
. Texto que será mostrado en el lugar de la lista de enlaces en el caso de que elDataSet
esté vacío (por ejemplo para indicar que no se han encontrado resultados a la búsqueda realizada)
La implementación del método getListadoEnlaces
es la siguiente:
Public Shared Function getListadoEnlaces(ByVal ds As DataSet, ByVal texto As String, ByVal enlace As String, ByVal titulo As String, ByVal siVacio As String) As String
Dim i As Integer
Dim listado As String
listado = "<ul>"
For i = 0 To ds.Tables(0).Rows.Count - 1
listado += "<li>"
listado += "<a href='" & ds.Tables(0).Rows(i)(enlace)
listado += "' title='" & ds.Tables(0).Rows(i)(titulo).ToString() & "'>"
listado += ds.Tables(0).Rows(i)(texto).ToString() & "</a>"
listado += "</li>"
Next
listado += "</ul>"
If ds.Tables(0).Rows.Count = 0 Then
Return siVacio
Else
Return listado
End If
End Function
Nota: En la declaración del método podemos ver que se ha declarado como Shared
. Entonces lo podemos incluir en una clase, de tal forma que cuando lo necesitemos utilizar, no será necesario instanciar un objeto de la clase que lo contenga, ya que podrá ser llamado diréctamente.