ASP.NET - Coger Valor de una celda( datagrid)

 
Vista:

Coger Valor de una celda( datagrid)

Publicado por JoseM (45 intervenciones) el 19/03/2007 09:30:28
Necesito coger el valor de ciertas celdas para ponerlos en otros campos pero no doy con la manera de hacerlo. También quiero saber cómo ocultar algunas columnas del datagrid.

Tras cargar el datagrid intento poner esta orden:

dg.SelectedItem.Cells(0).Text() : pero me dice que "selectedItem" no es miembro de System.UI.WebControls.GridView

y si pongo: dg.Items(dg.SelectedIndex).Cells(1).Text() me dice lo mismo pero con .Items.

ya he ido mirando en el foro todos los posts relacionados pero no doy con la manera,... ando un poco pez en esto.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Coger Valor de una celda( datagrid)

Publicado por Santos Pairazamán (54 intervenciones) el 19/03/2007 22:30:27
Por el mensaje estas usando GridView en el evento RowdataBound
e.Row.Cells(1).Visible = False
dond el 1 indica el inidce d la columna q deseas ocultar.

------------

en el evento SelectedIndexChanged

Dim row As GridViewRow = Grd.SelectedRow
txtdato.Text = row.Cells(2).Text
donde 2 es el indice q tiene la celda dond esta el dato a devolver.

Hasta Pronto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por JoseM (45 intervenciones) el 20/03/2007 08:12:24
Mmmmm, esos comandos que puse era por los ejmplos que vi pero estoy usando un datagrid. Aunque viendo lo que me has puesto he utilizado un dgview pero no me hace caso, cuando carga el dgview o datagrid el label.text a quien asigno el valor de una celda en particular no adquiere ningún valor.

Exactamente quiero, al cargar el datagrid hay una columna que saca el mismo valor en todas las filas, entonces quiero coger ese valor al cargar el datagrid y ponérselo a un label y a su vez ocultar la columna.

gracias Santos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por JoseM (45 intervenciones) el 21/03/2007 15:47:21
'lblNombre.Text = ds.Tables(0).Columns(0).ToString()
Esto hace que me de el nombre de la columna 0, el nombre del campo

lblNombre.Text = ds.Tables(0).Columns(0).Table.Rows(3).ToString()
Esto hace que me de el valor "System.Data.DataRow"

No entiendo nada, tan dificil es coger el valor de una celda??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por eljhonb (69 intervenciones) el 21/03/2007 16:22:29
Puedes hacer algo como esto: este ejemplo tiene un datagrid, con una columna de tipo checkBox. Recorre el datagrid y toma cierots valores de campos donde cumpla la condición que el checkbox este chekeado
el datagrid se llama DGReservados

foreach (DataGridItem chk in DGReservados.Items){

CheckBox check = (CheckBox)chk.FindControl("chk");
if (check != null)
{
if (check.Checked == true)
{
lblpruebas.Text += "- " + chk.Cells[1].Text + "<br>";
LblMensaje.Text += " está mirando las checked..";

//llamar el procedimiento que realiza el préstamo
//parámetros:
/*nombre artículo
* Inventario
* Fecha vencimiento*/
prestarImpl(chk.Cells[2].Text,int.Parse(chk.Cells[1].Text),chk.Cells[3].Text);
}
}
}

De esta forma puedes ocultar una columna de tu datagrid

DGReservados.Columns[0].Visible=false;

espero te sirva.
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por JoseM (45 intervenciones) el 21/03/2007 16:31:54
Muchas gracias eljhonb, acabo de solucionar hace unos minutos el tema de coger el valor de una celda en concreto:

label.Text = GridView.Rows(1).Cells(0).Text

100% efectivo ^_^

Por el tema de ocultar la columna es ese el comando que intento hacer pero me sale este mensaje:

Index was out of range. Must be non-negative and less than the size of the collection.

Pienso que será pq: gridview.column("el indice q yo ponga").visible = false lo pongo en algún momento antes de cargarse aún el gridview. pero es que pongo esa sentencia en diferentes partes del código y me dice lo mismo´.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por Karina (2 intervenciones) el 21/03/2007 23:54:15
Hola Jose

Si lo que quieres es ocultar una columna del datagrid porque no lo haces en el generador de propiedades?? yo lo manejo asi y funciona perfectamente..
Solo abre el generador de propiedades, selecciona la columna y el checkbox "Visible" deseleccionalo...
Espero que te sirva y te funcione ;)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Coger Valor de una celda( datagrid)

Publicado por JoseM (45 intervenciones) el 22/03/2007 08:05:02
Gracias Karina, no veo la forma de hacerlo tal y como me lo dices. me imagino que tú creas las columnsas y siempre son las mismas. En mi caso es dinámico, por eso dudo que por diseño pueda decir qué columna quiero q se vea y cual no.

La última prueba que he hecho ha sido:

ds.Tables("nombretabla").Columns("Nombrecolumna").ColumnMapping = MappingType.Hidden

Lo he puesto justo después de crear el dataset, pero no hace caso de esta sentencia.
Sólo necesito que me salga esto para terminar el proyecto,... que complicación,....

Por ponerlo más detallado,... una vez cargo el dataset lo que procede es:

dgv.DataSource = ds
dgv.DataMember = ds.Tables(0).TableName
dgv.DataBind()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para tomar valores de un DataGrid

Publicado por Francisco Cabrera (1 intervención) el 03/07/2008 20:38:51
Para tomar el valor de un DataGrid es sencillo.
En el evento "GridView1_SelectedIndexChanged" tenes que poner el siguiente codigo:

Me.TextBox1.Text = Me.GridView1.SelectedDataKey(0)
Me.TextBox2.Text = Me.GridView1.SelectedDataKey(1)

tenes que saber a q texbox enviaras que dato del Grid, posision sero, uno o la q quieran.

OJO, tienen q configurar una propiedad del DataGrid

Esta es la propiedad DataKeyNames, en la ventanaita de dialogo de esta propiedad tenes que poner todos los codigos de las tablas que estas mostrando en el Grid(separados por un enter), segun el orden como en este grid se muestran.

ejemplo:

cod_pasiente
nom_pasiente
DUI_pasiente
tel_pasiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar