31/03/2011, 17:38
|
| | | Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 8 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, |