Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/03/2011, 17:38
Avatar de jaullo
jaullo
 
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 10 meses
Puntos: 30
Respuesta: Editar datos en GridView y guardar

Hola,

Para ello debes tomar en cuenta algunas cosa.
1. Debes agregar los siguiente eventos al grid
OnRowCancelingEdit="gvVentasDesc_RowCancelingEdit" OnRowEditing="gvVentasDesc_RowEditing"
OnRowUpdating="gvVentasDesc_RowUpdating"

2. Debes agregar los botones de editar, actualizar y cancelar del grid. Puedes usar un templatefield, mira la propiedad commandname

<asp:TemplateField HeaderText="Edición" ShowHeader="False">
<EditItemTemplate>
<asp:ImageButton ID="btnUpdate2" runat="server" CausesValidation="False" CommandName="Update"
ImageUrl="~/Images/buttons/update.png" />

<asp:ImageButton ID="btnCancel2" runat="server" CausesValidation="False" CommandName="Cancel"
ImageUrl="~/Images/buttons/cancel.png" />


</EditItemTemplate>

<ItemTemplate>

<asp:ImageButton ID="btnEdit2" runat="server" CausesValidation="False" CommandName="Edit"
ImageUrl="~/Images/buttons/edit.png" />
</ItemTemplate>
</asp:TemplateField>

3. En el code behind debes ejecutar los procesos agregados en el primer paso
protected void gvVentasDesc_RowEditing(object sender, GridViewEditEventArgs e)
{
gvVentasDesc.EditIndex = e.NewEditIndex;
FillGridVentaDescuento();
}

protected void gvVentasDesc_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvVentasDesc.EditIndex = -1;
FillGridVentaDescuento();
}

protected void gvVentasDesc_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

//try
//{
TextBox txtFact = (TextBox)gvVentasDesc.Rows[e.RowIndex].FindControl("txtFactura");
DropDownList cmbType = (DropDownList)gvVentasDesc.Rows[e.RowIndex].FindControl("cmbCuenta");
TextBox txtDCobro = (TextBox)gvVentasDesc.Rows[e.RowIndex].FindControl("txtDiaCobro");


TextBox txtNoDesc = (TextBox)gvVentasDesc.Rows[e.RowIndex].FindControl("txtGvSinDesc");
TextBox txtFinal = (TextBox)gvVentasDesc.Rows[e.RowIndex].FindControl("txtGvTotalFi");


VentaDescuentoRules.Instance.UpdateVentasDescuento Data(Convert.ToInt16(gvVentasDesc.DataKeys[e.RowIndex].Value), int.Parse(txtFact.Text),
int.Parse(cmbType.SelectedValue), txtDCobro.Text, decimal.Parse(txtNeto.Text));

gvVentasDesc.EditIndex = -1;
FillGridVentaDescuento();
//}
//catch { }

}

4. Recuerda que para poder editar debes tener el EditItemTemplate
<EditItemTemplate>
<asp:DropDownList ID="cmbEstado" runat="server" AutoPostBack="true" />
</EditItemTemplate>

Saludos,
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!