Hola a tod@s:
Estoy trabajando en un Sitio Web en ASP.NET 2.0 con código C#
Quisiera montar la siguiente lista de manera dinámica:
- FICHEROS MAESTROS
- Clientes
- Ayuntamientos
- Rutas
- Municipios
- Formas de Pago
- Residuos
- Vehículos
- Repartidores
- Comerciales
- Empleados
- ADMINISTRADOR
- OPERATIVA
- Clientes
- Albarán
- Pagos a Comerciales
- Almacenes
- Ayuntamientos
- Mancomunidades
- Repartidores
- Actividades
- Generación de Residuos
- Entregas Valorizador
- Informes
- Correspondencia
- Clientes Pagadores
- Ayuntamientos
- MANUAL
- SALIR
Todos los datos para montar vienen de una tabla [MENU] de la base de datos con esta estructura:
Código:
CREATE TABLE MENU (mnu_id INT IDENTITY (1,1) NOT NULL,
mnu_txt NVARCHAR(50) NOT NULL,
mnu_title NVARCHAR(50) NULL,
mnu_url NVARCHAR(50) NOT NULL CONSTRAINT DF_menu_mnu_url DEFAULT (('#')),
mnu_nivel TINYINT NOT NULL,
mnu_padre_id INT NOT NULL CONSTRAINT DF_menu_mnu_padre_id DEFAULT ((0)),
mnu_perfiles NVARCHAR(25) NOT NULL,
CONSTRAINT clave_menu PRIMARY KEY (mnu_id))
La descripción de algunos de los campos de la tabla es la siguiente:
- [mnu_txt] es el texto de la opción.
- [mnu_title] es el texto para la propiedad TITLE de la etiqueta A de vínculo (pues cada opción va vinculada a alguna página).
- [mn

rl] es la ruta al vínculo deseado.
- [mnu_nivel] es un número indicador del nivel/subnivel en la que la opción se sitúa en la lista; por ejemplo las opciones como [FICHEROS MAESTROS] están a un nivel 0, una opción por debajo de ésta tendrá el nivel 1, debajo de ésta el nivel 2, etc...
- [mnu_padre_id], es el número para indicar cuál es el nivel padre de cada submenú. Las opciones de primer nivel, es decir nivel 0, no tienen padre y en este caso llevarán un 0 en este campo; los demás si son subniveles de otros llevarán en este campo el ID de los que sean sus padres, por ejemplo, la opción [Clientes] debajo de [Ficheros Maestros] lleva el 1 en este campo.
Como he dicho, quisiera saber como construir la lista deseada a través de los datos de la tabla.
En ASP 3.0 sabría hacerlo más ó menos a través de combinar varias consultas a la vez con varios recordset...
Pero con el ASP.NET 2.0, no llego a ver exactamente la manera, ya que en mi corta experiencia todas las consultas que se construyen se van cargando en controles web como GridView, FormView ó DropDownList.
Y aquí, no veo que sea ese el caso a menos que me equivoque
Si alguien me puede dar alguna pista sobre como construir la consulta, ... si con un objeto SqlDataSource ó con un SqlDataAdapter y DataSet ó con otros, y luego, sobre todo como ir cargando los datos montando el HTML de listas (ul y li) para conseguir la lista planteada.
Al final, esta lista, aplicándole una serie de estilos, se convierte en un menú desplegable.
Espero la(s) respuesta(s) de todo el que me pudiera ayudar...