none
seleccionar datos de un gridview para usarlos con un link button RRS feed

  • Pregunta

  • Buenas tardes, nesesito ayuda lo que pasa es que tengo un grid view y cargo los datos pero a la ves que se cree un linkbutton y que saque los datos de dos de sus columnas pero de la fila en la que se encuentra el linkbutton por que necesito esos datos para crear un redirect con esos mismos datos ya intente de varias formas pero no  lo he logrado.

    Este es el codigo que tengo asi ya puedo generar la liga pero el problema es que al dar clik en el link siempre toma el valor de la ultima fila y lo que quiero es tomar el valor de la fila en la que esta el linkbutton 

    Si me pueden ayudar se los agradeseria muchisimo!!

     <asp:GridView ID="parcialidadesGridView" runat="server" Font-Size="13px" 
                        AutoGenerateColumns="False"
                        ondatabound="parcialidadesGridView_DataBound">
                        <Columns>
                            <asp:BoundField DataField="ID" HeaderText="ID" > 
                            <ItemStyle HorizontalAlign="Center" Width="40px" />
                            </asp:BoundField>
    
                            <asp:BoundField DataField="Forma de pago" HeaderText="Forma de pago" > 
                            <ItemStyle Width="130px" Font-Overline="False" HorizontalAlign="Center" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="Fecha acuerdo de pago" 
                                HeaderText="Fecha acuerdo de pago" DataFormatString="{0:d}"> 
                            
                            <ItemStyle HorizontalAlign="Center" Width="100px" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="Cantidad" HeaderText="Cantidad"> 
                            
                            <ItemStyle HorizontalAlign="Center" Width="80px" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="Fecha de pago" HeaderText="Fecha de pago" 
                                DataFormatString="{0:d}" NullDisplayText="--">
                            
                            <ItemStyle HorizontalAlign="Center" Width="80px" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="Observaciones" HeaderText="Observaciones">
                            
                            <ItemStyle HorizontalAlign="Center" Width="200px" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="Status" HeaderText="Status"> 
                            <ItemStyle HorizontalAlign="Center" Width="70px" />
                            </asp:BoundField>
    
                            <asp:TemplateField> 
                               <ItemTemplate>
                               </ItemTemplate> 
                            </asp:TemplateField> 
                        </Columns>
                    </asp:GridView>

     protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
            }
            
            private void AddLinkButton()
            {
                foreach (GridViewRow row in  parcialidadesGridView.Rows)
                {
                    if (row.RowType == DataControlRowType.DataRow)
                    {
                        LinkButton lb = new LinkButton();
                        lb.Text = "Approve";
                        lb.CommandName = "ApproveVacation";
                        lb.Command += LinkButton_Command;
                        row.Cells[7].Controls.Add(lb);
    
                        cantidadDecimal = Convert.ToDecimal(row.Cells[3].Text);
                    idParcialidadCriterioPagoString = row.Cells[0].Text;
                        
                      
                        
                    }
                }
            }
    
            protected void LinkButton_Command(object sender, CommandEventArgs e)
            {
                if (e.CommandName == "ApproveVacation")
                {
                    
                    
                    
                    LinkButton lb = (LinkButton)sender;
                    lb.Text = "OK";
                    string url = "monto=" + (cantidadDecimal * 100).ToString("#######0") + "&folio=" + idParcialidadCriterioPagoString + "&actividad=" + claveOfertaString + "-" + idCriterioPagoString; 
                    MessageBox.Show(url+"****"+e.ToString(), "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);  
                    Response.Redirect(url);
    
                }
            }
    
            protected void parcialidadesGridView_DataBound(object sender, EventArgs e)
            {
                AddLinkButton();
            }


    viernes, 28 de junio de 2013 23:44

Respuestas

  • que saque los datos de dos de sus columnas pero de la fila en la que se encuentra el linkbutton por que necesito esos datos para crear un redirect

    pero esto no se hace como lo planteas, se utiliza el DataKeyNames, ademas que no se usan los evento del linkbutton, sino que se define un CommandName en el link y se sua el evento RowCommand del propio gridview

    aqui

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

    explico como lo harias, veras que es mucho mas simple de como lo estas planteando, se te complica porque la tecnica que estas buscando no es la correcta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta kAn0 domingo, 30 de junio de 2013 20:56
    sábado, 29 de junio de 2013 0:35