2 DataList y 1 DataView
Publicado por JoSe L (1 intervención) el 17/11/2004 16:08:51
Hola a todos expongo mi problema:
En principio tengo una bbdd con categorias y subcategorias, cada categoria tiene varias subcategorias. Lo que quiero conseguir es un listado en el que aparezcan las categorias y sus correspondientes subcategorias, del tipo
Categoria1: sub1, sub2, sub3, ... Categoria2: sub4, sub5, sub6, ...
Categoria3: sub7, sub8, sub9, ... Categoria4: sub10, sub11, sub12, ...
Categoria5: sub13, sub14, sub15, ... Categoria6: sub16, sub17, ...
Para ello tengo dos DataList (dl1 y dl2). En dl1 muestro el listado de categorias y en dl2 muestro el listado de subcategorias (todas). Meto dl2 en ItemTemplate de dl1 y edito el metodo correspondiente al evento ItemDataBound de dl1.
Por otro lado añado un DataView (dv1) para filtrar dl2 que esta dentro de dl1. El método ItemDataBound de dl1 queda asi:
private void dlCategorias_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e) {
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
this.dvSubcategorias.RowFilter = "idCategoria = " + this.dlCategorias.DataKeys[e.Item.ItemIndex];
DataList dl = (DataList)e.Item.FindControl("dlSubcategorias");
dl.DataBind();
}
}
El problema es que para cada elemento de dl1 me muestra todos los elementos de dl2, es decir, no me aplica el filtro. Para cada categoria muestra todas las subcategorias.
Categoria1: sub1, sub2, sub3, sub4, sub5, sub6 ...
Categoria2: sub2, sub2, sub3, sub4, sub5, sub6 ...
...
Una ayudita por favor.
Gracias a todos.
En principio tengo una bbdd con categorias y subcategorias, cada categoria tiene varias subcategorias. Lo que quiero conseguir es un listado en el que aparezcan las categorias y sus correspondientes subcategorias, del tipo
Categoria1: sub1, sub2, sub3, ... Categoria2: sub4, sub5, sub6, ...
Categoria3: sub7, sub8, sub9, ... Categoria4: sub10, sub11, sub12, ...
Categoria5: sub13, sub14, sub15, ... Categoria6: sub16, sub17, ...
Para ello tengo dos DataList (dl1 y dl2). En dl1 muestro el listado de categorias y en dl2 muestro el listado de subcategorias (todas). Meto dl2 en ItemTemplate de dl1 y edito el metodo correspondiente al evento ItemDataBound de dl1.
Por otro lado añado un DataView (dv1) para filtrar dl2 que esta dentro de dl1. El método ItemDataBound de dl1 queda asi:
private void dlCategorias_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e) {
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
this.dvSubcategorias.RowFilter = "idCategoria = " + this.dlCategorias.DataKeys[e.Item.ItemIndex];
DataList dl = (DataList)e.Item.FindControl("dlSubcategorias");
dl.DataBind();
}
}
El problema es que para cada elemento de dl1 me muestra todos los elementos de dl2, es decir, no me aplica el filtro. Para cada categoria muestra todas las subcategorias.
Categoria1: sub1, sub2, sub3, sub4, sub5, sub6 ...
Categoria2: sub2, sub2, sub3, sub4, sub5, sub6 ...
...
Una ayudita por favor.
Gracias a todos.
Valora esta pregunta


0