Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Obtener valor de celda en un gridview

1,388 views
Skip to first unread message

Lazarte Federico

unread,
Nov 29, 2007, 1:56:58 PM11/29/07
to
Estimados.
Tengo una grilla con un item template donde tengo un boton que ejecuta
una accion.
Esta accion debe traer mas informacion relacionada con uno de los
datos de la celda donde se hizo clic.
Lo que necesito es como recuperar el valor de dicha celda. En el
evento rowcommand del dg tengo el siguiente codigo:

if (e.CommandName.ToString() == "MasInfo")
{
string split = grdColas.SelectedRow.Cells[1].Text;
MoreInfo(split);

}

Pero el valor de SelectedRow esta viniendo en nullo.
Alguien sabe como resolverlo?
Gracias.

Sashka

unread,
Nov 29, 2007, 2:26:15 PM11/29/07
to
grdColas.SelectedIndex = Convert.ToInt32(e.CommandArgument.ToString());

string split = grdColas.SelectedRow.Cells[1].Text;

Sashka

"Lazarte Federico" <lazarte...@gmail.com> escribió en el mensaje
news:5251b416-4d0e-4269...@j20g2000hsi.googlegroups.com...

Jose A. Fernandez

unread,
Nov 29, 2007, 2:42:26 PM11/29/07
to
Hola Federico
agregando a lo que te comenta Sashka...
En el boton que tienes en el gridview puedes colocar directamente el
numero de la celda como valor del CommandArgument,
Entonces si luego podras utilizar esta parte
Dim indiceFila = Convert.ToInt32(e.CommandArgument.ToString())


______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja


On 29 nov, 16:26, "Sashka" <sass...@QUITAMEhotmail.com> wrote:
> grdColas.SelectedIndex = Convert.ToInt32(e.CommandArgument.ToString());
> string split = grdColas.SelectedRow.Cells[1].Text;
>
> Sashka
>

> "Lazarte Federico" <lazartefeder...@gmail.com> escribió en el mensajenews:5251b416-4d0e-4269...@j20g2000hsi.googlegroups.com...

Lazarte Federico

unread,
Nov 30, 2007, 9:14:49 AM11/30/07
to
> > > Gracias.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Estimado
El parametro en el commandargument debe ser dinamico, segun la fila en
que se hizo clic, hay alguna función para eso? Porque probe poniendole
un numero que representa la celda, pero, por mas que haga clic en la
fila 10, toma el valor que le puse.
Gracias.

Jose A. Fernandez

unread,
Nov 30, 2007, 4:46:23 PM11/30/07
to
Hola Federico
Por supuesto que el parámetro CommandArgument debe ser dinámico, aqui
te propongo dos mecanismos para poder introducir en este caso para tu
ejemplo e inquietud el RowIndex

OPCION 1: Enlazar en el diseño
------------------------------------
Aqui supongamos que tenemos un columan template y alli dento un boton
que asignaremos un comando
<asp:Button ID="Button1" runat="server"
CommandName="EJEMPLO2"
CommandArgument ='<%# Ctype(Container, GridviewRow).RowIndex %>'
Text="CMD 2" />

Si miras entro de commando argument tienes la posibilidad de obtener
el Row
Y ya que estamos como se evaluaria el contenido enlazado o como se
"enlazan" los templates en asp.net
Text='<%# Eval("campo1")%>'
Y la version completa
Text='<%# DataBinder.Eval(Container.DataItem, "campo1") %>'


OPCION 2: Mediante el codebehind
--------------------------------------------
Aqui en el evento RowDataBound (que es el momento que se enlaza a
datos la fila de la grilla, es obvio en el nombre ;)...)
Podemos hacer esto:
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e
As System.Web.UI.WebControls.GridViewRowEventArgs) Handles
GridView1.RowDataBound
Select Case e.Row.RowType
Case DataControlRowType.DataRow
Dim btnComandoEjemplo As Button =
CType(e.Row.FindControl("btnComandoEjemplo"), Button)
btnComandoEjemplo.CommandArgument = e.Row.RowIndex
End Select
End Sub

Recuperamos el control buttom dentro del template y asignamos la
propiedad correspondiente

Espero que te sirva de ayuda o guia


______________________
Jose A. Fernandez
blog: http://geeks.ms/blogs/fernandezja

0 new messages