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

¿Capturar valor del gridview?

Estas en el tema de ¿Capturar valor del gridview? en el foro de ASPX (.net) en Foros del Web. Buenas al intentar capturar el valor de un gridview cuando pulso el botón de cualquier fila me dice que es nulo, no logro sacarlo, este ...
  #1 (permalink)  
Antiguo 11/12/2009, 17:51
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Pregunta ¿Capturar valor del gridview?

Buenas al intentar capturar el valor de un gridview cuando pulso el botón de cualquier fila me dice que es nulo, no logro sacarlo, este es mi código.

Código:
protected void imageButtonCilck(object sender, EventArgs e)
    {

        ImageButton imageButton = (ImageButton)sender;
        TableCell tableCell = (TableCell)imageButton.Parent;
        GridViewRow row = (GridViewRow)tableCell.Parent;
        GvQuinielasUsuario.SelectedIndex = row.RowIndex;
        int fila =  row.RowIndex;
      
        string prueba1 = GvQuinielasUsuario.Rows[fila].Cells[1].Text;
        string prueba2 = GvQuinielasUsuario.Rows[fila].Cells[1].Text.ToString();
        //prueba1 y prueba2 me sacan valores nulos :-(

    }
Código:
 <asp:GridView ID="GvDatos" 
runat="server" Width="280px" 
AutoGenerateColumns="False" HorizontalAlign="Left">                                                             
<Columns>                
<asp:TemplateField HeaderText="Ver" 
ItemStyle-HorizontalAlign="Center" 
HeaderStyle-HorizontalAlign="Center" >
 <ItemTemplate>
<asp:ImageButton runat="server" ID="imageButton" 
ImageUrl="~/Botones/Boton.png" Width="20px"  
CommandName="image" OnClick="imageButtonCilck" />
       </ItemTemplate>
       <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
   <asp:TemplateField HeaderText="Datos" 
ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" >
                    <ItemTemplate>
                        <asp:Label ID="IdDatos" runat="server" 
Text='<%# Eval("Datos") %>'></asp:Label>    
                    </ItemTemplate>               
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
                </asp:TemplateField>
            </Columns>
 </asp:GridView> 
He visto que hay ejemplos con esto, que puede ser una solución...

iframe1.Page.Session.Add("IdDatos", row.Cells[fila].Text);

Pero no quiero un iframe1, como podría hacer eso para pasarlo a un string?

gracias
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
  #2 (permalink)  
Antiguo 11/12/2009, 18:16
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Respuesta: ¿Capturar valor del gridview?

He logrado una solución, la pongo por si alguien le sirve es:

string Valor = ((Label)row.Cells[0].FindControl("IdDatos")).Text;


Quedaría así en el código



Código:
protected void imageButtonCilck(object sender, EventArgs e)
    {

        ImageButton imageButton = (ImageButton)sender;
        TableCell tableCell = (TableCell)imageButton.Parent;
        GridViewRow row = (GridViewRow)tableCell.Parent;
        GvQuinielasUsuario.SelectedIndex = row.RowIndex;
        int fila =  row.RowIndex;
      
       string Valor =  ((Label)row.Cells[IdDatos].FindControl("IdDatos")).Text;
    }
Pero hay una cosa que no entiendo y es porque me vale igual que ponga 1 que 0??? en teoría si pongo cero solo me cogera la primera columna... pero la coge bien porque se la indico en FindControl,...

string Valor = ((Label)row.Cells[0].FindControl("IdDatos")).Text;
string Valor = ((Label)row.Cells[1].FindControl("IdDatos")).Text;

no hay quien lo entienda, pero bueno me lo hace bien de un modo u otro que es lo que cuenta, si hay alguien que me responda esto, guay, sino pues hastalue
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
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




La zona horaria es GMT -6. Ahora son las 23:25.