none
obtener el numero de una celda dentro de un GridView RRS feed

  • Pregunta

  • Hola que tal!

    Les expongo mi duda acerca de un GridView:

    Necesito obtener el numero de la celda (No su valor ni cuantas celdas hay en el GridView), por ejemplo en mi caso tengo un GridView que se actualiza automaticamente con información de una base de datos, cuenta con 4 celdas y 3 filas, pero necesito el indice de determinada celda para generar información.

    solo me he dado cuenta que existe el método e.Row.Cells.Count que se encuentra dentro de: GridView_RowDataBound pero solo me manda el número de celdas que hay en el GridView, lo que necesito es el indice de la celda.

    0 1    2        3

    celda1 | celda2 | celda3 | celda4

    e.Row.Cells.Count =4

    necesito algo así como el indice de la celda1=0.

     

    Agradezco de su ayuda y de sus aportes GRACIAS!

    jueves, 28 de julio de 2011 18:34

Respuestas

  • hola

    pero en que evneto piensas trabajar

    porque lo que has mencionado es un evento a nivel de row, no de cell, por eso lanza el e.Row y en este puede acceder a cuaqlueir cell que necesites

    pero no hay eventos del cell como en el datagridview de winforms, por eso consulto en que momento necesitas hacer esto, porque los eventos por celda no hay

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Nerk10 viernes, 29 de julio de 2011 18:06
    jueves, 28 de julio de 2011 18:43

Todas las respuestas

  • hola

    pero en que evneto piensas trabajar

    porque lo que has mencionado es un evento a nivel de row, no de cell, por eso lanza el e.Row y en este puede acceder a cuaqlueir cell que necesites

    pero no hay eventos del cell como en el datagridview de winforms, por eso consulto en que momento necesitas hacer esto, porque los eventos por celda no hay

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Nerk10 viernes, 29 de julio de 2011 18:06
    jueves, 28 de julio de 2011 18:43
  • ¿En qué momento quieres saber el índice de la celda? ¿Cuando un usuario hace click en esa celda? O sólo lo quieres para cargar los datos de actualización en una celda concreta?

     


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    jueves, 28 de julio de 2011 19:51
  • Hola!
    Según lo que entiendo; Lo que tienes que hacer es; En el menu inteligente del grid que hayas arrastrado, (esta arriba a la derecha del gridview) entonces selecciona "Habilitar Selección", eso te creará botones a la izquierda del grid a cada una de las celdas, entonces generas el evento de selección, dándole doble click a alguno de esos botones; Entonces en el evento generado, para seleccionar el índice de la celda se hace con la siguiente línea de código:
       int indicegrid = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value); //obtiene el valor del indice de la celda que se seleccionó
    
     

    Espero eso sea lo que necesites y ojala te funcione.


          

    viernes, 29 de julio de 2011 0:53
  • hola Donoban

    pero el DataKeys no devuelve el indice de de la celda, sino la ket o id de la entidad que uno esta editando

    pero es un solo valor a unico por row, no es una celda la que se recupera

    para que el DataKeys funcione se requiere definir el DataKeyNames con el cmapo de la entidad que define esa row, ojo es util y la forma en que se identifica el registro que se seelcciona, pero es lejos de identificar una celda

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 29 de julio de 2011 1:07
  • Claro tienes razón Leandro necesitaba en el momento que se actualice la celda como uso controles AJAX para la actualización que se hace dinamicamente esta constante, pero lo solucione con el método: e.Row.Cells.Count =4  restandole un número cuando se halla actualizado esa celda (capturo la actualización por cada celda para otras circunstancias y lo hago así:

    if (refreshCell()==1){

    numCell=(e.Row.Cells.Count -3);

    }

    else //condición para la otra celda

    de esta manera me da un 1 que es el indice de la celda1 y así para los otros 3. Bueno esto se soluciona con lógica :).

    ). Y como comentas no hay eventos para los cell del GridView solo los básicos, pero  bueno de antemano gracias por la retro alimentación.

    viernes, 29 de julio de 2011 14:47