Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
Citas
Loading Quotes...
AddThis Feed Button
AddThis Social Bookmark Button
Saliendo de montecerrao
nieve!
IMGP8604
IMGP8601
IMGP8600
Categorias
This Month Last Year
links
05
Sep

Campos Ocultos en GridView, ¿Son necesarios?

(QR Code)

¿Es necesario tener un campo oculto en un GridView de nuestra web para obtener sus datos?.

En la mayoria de los casos la respuesta es NO. El tener los datos en el gridview como ocultos simplemente hace nuestra aplicación mas pesada, y la cantidad de datos que se necesita guardar en el VIEWSTATE mucho mayor.

Se pueden acceder a los datos que queramos que estén vinculados a un determinado gridView de una forma simple, Y ademas accediendo por el nombre de la columna que queremos y no por su indice (una limitación del GridView)

El código es muy simple: (siendo gw un Control GridView)

Obtenemos el DataTable del GridView

DataTable dtt =(DataTable) gw.DataSource;

Obtenemos de la fila (int) Row del GridView su correspondencia con la fila del DataTable contenido en el. Aquí podemos sustituir Row por cualquier valor, como el selectedIndex para la fila seleccionada en el GridView

int index = gw.Rows[row].DataItemIndex;

Finalmente devolvemos del DataTable Obtenido los datos de la fila (int) Row y el nombre de la columna que queremos ((string) Col)


object valorObtenido = dtt.Rows[index][col];

Y con esto ya tenemos en valorObtenido el valor de la fila y columna que necesitamos de la tabla que se usa para componer el GridView, este o no ese campo en el GridView.

Este código es especialmente &úacute;til para obtener datos de de la fila seleccionada en un GridView, pudiendo obtener incluso aquellos campos que no queremos mostrar en el control sin tener que añadírselos como campos ocultos.

Comparte:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • email
  • HackerNews
  • Live
  • Meneame
  • MySpace
  • PDF
  • Reddit
  • RSS
  • Slashdot
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Technorati
  • Twitter
  • Wikio
  • LinkedIn
  • MSN Reporter
  • Netvibes
  • Tumblr
  • Twitthis
  • Yahoo! Bookmarks

6 Comentarios

  • Sebastian Dice:

    Muy bueno el apunte


  • Mario Dice:

    Como puedo obtener el index de la columna seleccionada, no de la fila!


  • Kuroneko Dice:

    Lo mas sencillo, si usas VS2005 es que uses un control DataGridView. Este control tiene un evento CellClick que se lanza cuandose hace clic en cualquier celda del control y que tiene un parametro e que contiene

    e.ColumnIndex
    e.RowIndex

    para saber el indice de la columna y la fila donde se esta haciendo clic del control.

    Despues si queremos con este codigo en MiDataGridView podemos obtener el nombre de la columna de un DataTAble a la que esta vinculada esa celda

    MiDataGridView .Columns(e.ColumnIndex) .CellTemplate.OwningColumn.DataPropertyName


  • Sebastian R Dice:

    Es bueno el aporte, sin embargo no me funciona, yo tengo un grid view q


  • Sebastian R Dice:

    Es bueno el aporte, sin embargo no me funciona, yo tengo un grid view que me muestra 3 columnas, y la consulta me trae 7 columnas, una de estas no se muestra en las columnas del grid, y necesito su valor cuando selecciono una fila para poder hacer una comparacion, que debo hacer??


  • Kuro Dice:

    Si estas accediendo después de una petición, recuerda que hay que reenlazar siempre el control para recuperar su estado (realizar de nuevo el DataBind)


Quieres dejar un comentario?