Duda en actualización de grid c#

hola buenas tardes expertos ,
tengo un problema con mi código al actualizar mi grilla.
tengo una grilla que permite agrega,modifica y eliminar,con la creación y eliminación no tengo problemas, pero el actualizar no me actualiza a menos que selecciones (clickee) 2 veces la linea, recién allí actualiza.

mi código es este:

   int nRow = Grid2.Rows.SelectedRows.Item(0, SAPbouiCOM.BoOrderType.ot_RowOrder);
            
                String sValorGrid = Convert.ToString(Grid2.DataTable.GetValue("CODE", nRow));

                if (oUserTable.GetByKey(sValorGrid.ToString())) // Esto devuelve true si existe el registro
                {

                            string cod = (string)(Grid2.DataTable.GetValue("Código", nRow));
                            string nom = (string)(Grid2.DataTable.GetValue("Nombre", nRow));
                            string proy = (string)(Grid2.DataTable.GetValue("Proyecto", nRow));

                            

                           // oCompany.StartTransaction();
                            oUserTable.Code = cod;
                            oUserTable.Name = cod;
                            oUserTable.UserFields.Fields.Item("U_CodigoEDC").Value = cod;
                            oUserTable.UserFields.Fields.Item("U_NombreEDC").Value = nom;
                            oUserTable.UserFields.Fields.Item("U_ProyectoEDC").Value = proy;

                            int i = oUserTable.Update();

                            if (i != 0)
                            {
                                oApp.SetStatusBarMessage("Error" + oCompany.GetLastErrorDescription(), SAPbouiCOM.BoMessageTime.bmt_Medium, false);

                            }
                            else
                            {
                                oApp.SetStatusBarMessage("Exito en la Actualización", SAPbouiCOM.BoMessageTime.bmt_Medium, false);
}

y con un evento en la grilla permito que al seleccionar la celda se marque toda la linea, con esto en teoría debería funcionar(funciona perfecto en agregar)

 private void Grid2_ClickAfter(object sboObject, SAPbouiCOM.SBOItemEventArg pVal)
        {
            Grid2.Rows.SelectedRows.Add(pVal.Row);


        }

pero cuando actualizo no me toma el valor cambiado, sino el valor que ya estaba, pero si cliqueo de nuevo la fila este si toma el dato, alguien sabe en que me puedo estar equivocando?

muchas gracias

Hola! :thinking:

Me parece que estas ejecutando la actualizacion ANTES del evento ClickAfter o del Validate, ¿En que momento (Evento) estas llamando la actualizacion?

1 me gusta

la actualización se ejecuta cuando se modifica una linea y se presiona actualizar, al agregar me funciona bien, pero el actualizar es el problema:
en el boton, primero verifica si es okmode y si tiene datos, despues actualizar o agrega según eso.

   if (oForm.Mode.Equals(SAPbouiCOM.BoFormMode.fm_OK_MODE) || (Grid2.Rows.SelectedRows.Count == 0))
            {


                Button0.Caption = "OK";
                
            }

             else
             { aca pasa al actualizar

ademas le hago un if si viene con valor o no y si viene con un 1, es decir que si viene con algo.
actuaización: cuando hago click en otra celda cualquier menos la que estoy editando , esta permite guarda, es como dar un click para editar y después clikear otra celda y esta permite guardar.

hola,
al final aplique tabulador cada vez que presionen el botón actualizar.
oApp.SendKeys("({TAB})");
por si alguien le sirve.
saludos

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.