Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/10/2003, 12:51
Albertron
 
Fecha de Ingreso: marzo-2002
Mensajes: 188
Antigüedad: 22 años, 2 meses
Puntos: 0
Hola qtal,
He encontrado una solución. Lo que pasa es que no me servirá de nada si no puedo hacer lo siguiente:

- Eliminar columnas de la fila creada
- Cambiar el aspecto a la fila (tamaño de la fuente, color, ...)

El tema es el siguiente:

Justo antes de asignar el DataSet con los valores de mi Select al Datagrid hago lo siguiente

'DataSet con mi Select
ds = GetDS2()

'Antes de asignar al DataGrid
Do While i <= ds.Tables(0).Rows.Count - 1
curCat = ds.Tables(0).Rows(i).Item(0)
If curCat <> prevCat Then
prevCat = curCat
Dim shRow As DataRow = ds.Tables(0).NewRow
shRow(1) = ds.Tables(0).Rows(i).Item(0)
'Change ItemDataBound marker to Negative Number
shRow(2) = -1
shRow(3) = ds.Tables(0).Rows(i).Item(1)
ds.Tables(0).Rows.InsertAt(shRow, i)
i += 1
End If
i += 1
Loop

'Lo asigno al datagrid
tabs.DataSource = ds
tabs.DataBind()


Con esto consigo insertar una fila con el nombre de la categoría y a continuación todas las subcategorías de esa categoría.

Ahora bien, esa fila que me inserta, me la inserta con el mismo número de columnas que las otras (me parece lo más normal del mundo que lo haga así), cuando yo sólo quiero tener una columna para ese tipo de filas (donde me sale la categoría).

Como puedo acceder por código a esas filas? Había pensado en usar el OnItemDataBound aprovechando esta línea de código del bucle "shRow(2) = -1", pero no se cómo hacerlo porque todas las columnas de mi DataGrid son ItemTemplate.