Como leer columna de un DataGridItem?

14/04/2005 - 21:29 por Miguel Lopez | Informe spam
Tengo un datagrid y una de las columnas es un cálculo
basado en otras columnas. El datasource del grid es un
datareader. En el OnItemDataBoundEventHandler intento
acceder a una de las columnas de la siguiente forma:
((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString
() pero me dice al coorerlo que es un casting no
permitido.

Que tipo de objeto es el DataGridItem cuando el
datasource del grid es un datareader?

Gracias

Preguntas similare

Leer las respuestas

#1 Miguel Angel Campos
17/04/2005 - 14:56 | Informe spam
Tienes que tener en cuenta dos detalles:
- En primer lugar tienes que tener cuidado por que si muestras la cabecera
con los nombre de los campos en el DataGrid, el evento tambien se dispara
para la cabecera, y en ese caso e.Item.DataItem vale null. En este caso
tienes que verificar el valor de e.Item.ItemType sea Item o AlternatingItem,
y solo en ese caso analizar el valor que viene del registro de la base de
datos.
- En segundo lugar al enlazar con un DataReader el objeto e.Item.DataItem es
de tipo DBDataRecord no DataRowView, por eso te da un error. sería
((DBDataRecord)e.Item.DataItem).Item[e.Item.ItemIndex].ToString();.

Te adjunto un ejemplo de como establecer el ToolTip de la primera celda con
el valor de la columna.
private void DataGrid1_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType ==
ListItemType.Item)
{
e.Item.Cells[0].ToolTip = ((DbDataRecord)e.Item.DataItem)[0].ToString();
}
}

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Miguel Lopez" escribió en el mensaje
news:03b201c54128$4d015f40$
Tengo un datagrid y una de las columnas es un cálculo
basado en otras columnas. El datasource del grid es un
datareader. En el OnItemDataBoundEventHandler intento
acceder a una de las columnas de la siguiente forma:
((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString
() pero me dice al coorerlo que es un casting no
permitido.

Que tipo de objeto es el DataGridItem cuando el
datasource del grid es un datareader?

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida