Crear una lista de enlaces desde una base de datos

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 clase DataSet, que contendrá la información de los enlaces
  • texto: Un objeto de la clase String. Es el nombre de la columna del DataSet que tendrá el texto del enlace
  • enlace: Un objeto de la clase String. Es el nombre de la columna del DataSet que tendrá la dirección del enlace
  • title: Un objeto de la clase String. Es el nombre de la columna del DataSet 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 web
  • siVacio: Un objeto de la clase String. Texto que será mostrado en el lugar de la lista de enlaces en el caso de que el DataSet 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.

Quizá te interese...