Foros del Web » Programando para Internet » ASPX (.net) »

Index en una GridView

Estas en el tema de Index en una GridView en el foro de ASPX (.net) en Foros del Web. Tengo una GridView en la que defini un TemplateField de la siguiente forma: <asp:TemplateField> <ItemTemplate> <asp:ImageButton ID="Imp" runat="server" CommandName="Imp" Height="25px" ImageUrl="~/images/imp.JPG" ToolTip="Imprimir" Width="25px" /> </ItemTemplate> ...
  #1 (permalink)  
Antiguo 02/10/2006, 11:35
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Index en una GridView

Tengo una GridView en la que defini un TemplateField de la siguiente forma:
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="Imp" runat="server"
CommandName="Imp" Height="25px" ImageUrl="~/images/imp.JPG"
ToolTip="Imprimir" Width="25px" />
</ItemTemplate>
</asp:TemplateField>

El evento que disparo al ejecutar este template es:
protected void gvTramites_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Imp")
{
string i = gvTramites.SelectedDataKey.Value.ToString();
..........
}
}
El problema que tengo es que "i" siempre tiene el mismo valor, no me toma el index. Como hago para obtener el ID de la fila donde clickeo el template?.
Muchas gracias por la ayuda que puedan darme.
  #2 (permalink)  
Antiguo 02/10/2006, 12:45
 
Fecha de Ingreso: agosto-2006
Mensajes: 45
Antigüedad: 17 años, 8 meses
Puntos: 0
Que tal amigo(a), es muy sencillo, suponiendo que tu traes un Id que tu ya consultaste solo tienes que bindearlo a tu ImageButton de la siguiente manera
<asp:ImageButton ID="Imp" runat="server"
CommandName="Imp" Height="25px" ImageUrl="~/images/imp.JPG"
ToolTip="Imprimir" Width="25px" CommandArgument='<%# Eval("Id")%>'/> estamos hablando del ImageButton que se encuentra dentro de tu template, para que te sirve el command argument?, facil ahora el Id que tu quieres recuperar y que siempre será distinto si tus renglones del grid no se repiten estará contenido dentro de la propiedad e.CommandArgument, es decir, ahora tu código dentro del evento será así: string i=e.CommandArgument.Tostring();
  #3 (permalink)  
Antiguo 02/10/2006, 13:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Voy a probarlo pero antes, y si no es mucha molestia, tengo un par de dudas de tu respuesta:
1- que significa '<%# Eval("Id")%>'
2- en que evento debo hacer string i=e.CommandArgument.Tostring();

Muchas gracias, saludos.
una amiga
  #4 (permalink)  
Antiguo 02/10/2006, 20:44
 
Fecha de Ingreso: agosto-2006
Mensajes: 45
Antigüedad: 17 años, 8 meses
Puntos: 0
1 - Ahh mira al proceso de poner '<%# Eval("Id")%>' en un Label, ImageButon u cualquier objeto compatible se le llama bindear, Eval es un valor que tu traes dentro de una propiedad del objeto del cual es tu lista, dentro de los parentesis puedes poner lo mismo un Id que cualquier campo de tu objeto, esto tambien se puede hacer gráficamente en la opción EditTemplates de tu GridView, das click en esa opcion y te aparecerán desglosadas esas columnas, pues si das click derecho sobre la imagen o cualquier objeto, te aparece una opcion que dice EditDatabindings y pues ahi ya puedes poner este mismo eval, pero sin tanto rollo, solo siguiendo esta notacion Eval("CampoOProperty").

2 - Perdona amiga, me qeuivoqué no es evento, es mas bien en la sección de código que tu ya tienes, me refiero a esta, ahora corregida por mi si los cálculos no me fallan jeje:

protected void gvTramites_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Imp")
{
string i=e.CommandArgument.Tostring();
..........
}
}
lo que haces ahi es decirle que a i le asigne el argumento que tu le bindeaste al ImageButton en la propiedad CommandArgument desde tu código Asp.

Oye, espero te sirva de algo sale?, porke no nos comunicamos mas de cerca, te envié un mensaje privado, asi podrmos compartir mas datos de esto si tu quieres claro, allos
  #5 (permalink)  
Antiguo 04/10/2006, 13:25
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Mil gracias por tu ayuda que ademas de clara funciono perfectamente.
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:24.