none
Quisiera saber como puedo selecionar las celdas de un gridview.... RRS feed

  • Pregunta

  • como se hace en una aplicacion de escritorio con un datagrid.. se puede hacer eh buscado en internet pero no encuentro ejemplos muy claros!alguien puede ayudarme o darme una guia?

    Trabajo en una aplicaion web con lenguaje c#.

    Gracias!

    jueves, 21 de julio de 2011 14:40

Respuestas

  • hola

    pero estas consultando en un foro de asp.net, como seria eso de aplciacion de escritorio ?

    o sea si es de escritorio es con winforms, no web

     

    cuando dices datagrid te refieres al gridview ?

    por ahi esto ayude

    [ASP.NET][GridView] - Como seleccionar una fila

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 21 de julio de 2011 14:51
  • hola, debes acceder a ella por medio de la fila y luego el numero de la celda, algo como

    Gridview1.rows[#fila].cells[#celda].text

    recuerda q tanto la primera fila como la primera celda son la número 0


    Julio Avellaneda
    MCP
    Blog !!


    jueves, 21 de julio de 2011 19:29
  • en realidad depende, podrias ponerlo en algun evento de un boton o del propio grid

    por lo general las acciones de seleccion se usan con evento del propio gridview como ser el SelectedIndexChanged

    si revisas el ejemplo del articulo que porpocione veras esto implementado, y en mas de una opcion, pero veo por el planteo que no lo has hecho, proque sino tendrias la respuesta

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Comenzando martes, 26 de julio de 2011 15:10
    viernes, 22 de julio de 2011 16:57
  • Hola!
    Primero que todo; solo para aclarar y ojala y ya lo sepas, es que en ASP a las grillas o grids, se les llama como GridView por lo contrario en los Forms (en programación para el escritorio) se les llama DataGridView.
    Supuestos:
    1-Me imagino que el grid lo llenaras con alguna tabla de una base de datos; entonces partamos de que la siguiente es le estructura de la tabla "persona":
    id-->int primary key
    nombre-->varchar(15)
    apellido-->varchar(15)
     
    2-Existe un GriDview llamado "GridView1"
     
    3-Bajo o al lado del "GridView1" existen 3 texbox llamados:
    txtid-->para el id
    txtnombre-->para el nombre
    txtapellido-->para el apellido
     
    Ahora 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 creara 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; A partir de ahí se debe programar lo que quieras, en este caso es seleccionar los datos de la celda, entonces veamos el siguiente código:
     
          int indicegrid = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value); //obtiene el valor del id de la celda que se seleccionó
                
          string strq = "select * from persona"
    
          string conecstring = "Data Source=servidor;Initial Catalog=base-de-datos;Integrated Security=True";
    
          SqlDataAdapter consulta = new SqlDataAdapter(strq, conecstring);
    
          DataSet dts = new DataSet();
    
          consulta.Fill(dts);
    
          int totalregistros = dts.Tables[0].Rows.Count;
          
          for (int i = 0; i <= totalregistros ; i++)
          {
            
    
            if (Convert.ToInt32( dts.Tables[0].Rows[i]["id"].ToString()) == indicegrid ) //Busca el "id" en el DataSet, donde sea igual al índice seleccionado 
            {
              txtid.Text = dts.Tables[0].Rows[i]["id"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "id" y lo muestra en el texbox "txtid"
    
              txtnombre.Text = dts.Tables[0].Rows[i]["nombre"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "nombre" y lo muestra en el texbox "txtnombre"
    
              txtapellido.Text = dts.Tables[0].Rows[i]["apellido"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "apellido" y lo muestra en el texbox "txtapellido"
                     
              break; //una vez encontrada la información detenemos el for
            }
          }
    

     
    En este caso los datos se obtienen del DataSet ("dts"), esta es la forma en que lo he hecho, esta es una de las críticas que se pueden recibir, de realizar esto de esta manera, pero bueno si alguien sabe una mejor forma de realizarlo, pues que lo comente.
     
    Ojala y lo que escribí te sirva y sea lo que necesitas.
    domingo, 24 de julio de 2011 2:14

Todas las respuestas

  • hola

    pero estas consultando en un foro de asp.net, como seria eso de aplciacion de escritorio ?

    o sea si es de escritorio es con winforms, no web

     

    cuando dices datagrid te refieres al gridview ?

    por ahi esto ayude

    [ASP.NET][GridView] - Como seleccionar una fila

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 21 de julio de 2011 14:51
  • no pues si estoy en una plicacion web si no que pongo el ejemplo pues q en un datagri es mas facil eso creo?

    pero yo estoy en una aplicacion web tratande de selecionar las celdas de una gridview mirare lo que me has mandado

    gracias!

    si en algo mas pudieras ayudarme te agradesco!

    jueves, 21 de julio de 2011 16:00
  • hola, debes acceder a ella por medio de la fila y luego el numero de la celda, algo como

    Gridview1.rows[#fila].cells[#celda].text

    recuerda q tanto la primera fila como la primera celda son la número 0


    Julio Avellaneda
    MCP
    Blog !!


    jueves, 21 de julio de 2011 19:29
  • esto lo pongo en algun evento o algo diskulpa mi ignorancia podrias darme un ejemplo mas claro estaba tratando con un ejemplo que encontre en internet pero no se me causa muchos errores..

    Gracias!

    viernes, 22 de julio de 2011 16:49
  • en realidad depende, podrias ponerlo en algun evento de un boton o del propio grid

    por lo general las acciones de seleccion se usan con evento del propio gridview como ser el SelectedIndexChanged

    si revisas el ejemplo del articulo que porpocione veras esto implementado, y en mas de una opcion, pero veo por el planteo que no lo has hecho, proque sino tendrias la respuesta

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Comenzando martes, 26 de julio de 2011 15:10
    viernes, 22 de julio de 2011 16:57
  • Hola!
    Primero que todo; solo para aclarar y ojala y ya lo sepas, es que en ASP a las grillas o grids, se les llama como GridView por lo contrario en los Forms (en programación para el escritorio) se les llama DataGridView.
    Supuestos:
    1-Me imagino que el grid lo llenaras con alguna tabla de una base de datos; entonces partamos de que la siguiente es le estructura de la tabla "persona":
    id-->int primary key
    nombre-->varchar(15)
    apellido-->varchar(15)
     
    2-Existe un GriDview llamado "GridView1"
     
    3-Bajo o al lado del "GridView1" existen 3 texbox llamados:
    txtid-->para el id
    txtnombre-->para el nombre
    txtapellido-->para el apellido
     
    Ahora 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 creara 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; A partir de ahí se debe programar lo que quieras, en este caso es seleccionar los datos de la celda, entonces veamos el siguiente código:
     
          int indicegrid = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Value); //obtiene el valor del id de la celda que se seleccionó
                
          string strq = "select * from persona"
    
          string conecstring = "Data Source=servidor;Initial Catalog=base-de-datos;Integrated Security=True";
    
          SqlDataAdapter consulta = new SqlDataAdapter(strq, conecstring);
    
          DataSet dts = new DataSet();
    
          consulta.Fill(dts);
    
          int totalregistros = dts.Tables[0].Rows.Count;
          
          for (int i = 0; i <= totalregistros ; i++)
          {
            
    
            if (Convert.ToInt32( dts.Tables[0].Rows[i]["id"].ToString()) == indicegrid ) //Busca el "id" en el DataSet, donde sea igual al índice seleccionado 
            {
              txtid.Text = dts.Tables[0].Rows[i]["id"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "id" y lo muestra en el texbox "txtid"
    
              txtnombre.Text = dts.Tables[0].Rows[i]["nombre"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "nombre" y lo muestra en el texbox "txtnombre"
    
              txtapellido.Text = dts.Tables[0].Rows[i]["apellido"].ToString(); //obtiene la información del DataSet (dts) cuyo índice sea "apellido" y lo muestra en el texbox "txtapellido"
                     
              break; //una vez encontrada la información detenemos el for
            }
          }
    

     
    En este caso los datos se obtienen del DataSet ("dts"), esta es la forma en que lo he hecho, esta es una de las críticas que se pueden recibir, de realizar esto de esta manera, pero bueno si alguien sabe una mejor forma de realizarlo, pues que lo comente.
     
    Ojala y lo que escribí te sirva y sea lo que necesitas.
    domingo, 24 de julio de 2011 2:14
  • s esta muy buena tu explicacion m muchas gracias en este moento lo estoy probando..

    esperemos que funcione gracias!

     

    lunes, 25 de julio de 2011 20:19
  • Muchas gracias me ha sido de gran ayuda todos...

    =)

    martes, 26 de julio de 2011 15:10