Cancelar a execução de um evento

08/06/2009

Olá
Estou fazendo a chamada de um evento do AspGrid. Porém dentro desse evento efetuo uma validação, dependendo do resultado dessa valdiação eu quero abortar a execução do evento. Qual é o comando que posso utilizar. Por exemplo no Delphi eu executo o comando Abort. Obs. Estou utilizando C#.

Obrigado.
Eduardo Pereira

Eduardo Pereira

Curtidas 0

Respostas

Luiz Maia

Luiz Maia

08/06/2009

Me manda um trecho de seu codigo por favor, de onde quer parar a execução.   Aguardo Att Luiz Maia
GOSTEI 0
Eduardo Pereira

Eduardo Pereira

08/06/2009

Ok
Segue o código:

        protected void grdEstoque_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            string prd_it_id = "0";
            string vlm_it_id = "0";
            string nfo_it_id = "0";
            int qtde_disponivel = 0;
            int qtde_reservar = 0;

            for (int i = 0; i <= grdEstoque.VisibleRowCount - 1; i++)
            {
                if (grdEstoque.Selection.IsRowSelected(i))
                {
                    prd_it_id = grdEstoque.GetRowValues(i, "EST_IT_PRD_ID").ToString();
                    vlm_it_id = grdEstoque.GetRowValues(i, "VLM_IT_ID").ToString();
                    nfo_it_id = grdEstoque.GetRowValues(i, "NFO_IT_ID").ToString();
                    qtde_disponivel = Convert.ToInt32(grdEstoque.GetRowValues(i, "DISPONIVEL").ToString());
                    qtde_reservar = Convert.ToInt32(grdEstoque.GetRowValues(i, "EST_IT_QTDE_RESERVAR").ToString());
                }
            }

            if (qtde_reservar > qtde_disponivel)
            {
                MessageBox.Show("A quantidade a ser reservada tem que ser menor ou igual a quantidade disponível", "Erro na quantidade a reservar", MessageBoxButtons.OK);

               --- AQUI DESEJO ABORTAR

            }

....
...
...
}

GOSTEI 0
Luiz Maia

Luiz Maia

08/06/2009

Ola Eduardo,   Tem varias formas de abortar a execução. Se for dentro de um loop, no seu caso o for, vc consegue usar o "break"; Mas ja que é fora do for, sugiro usar um bloco de instrução que cospe uma exceção, do tipo: "throw".   Outra forma seria dentro do metodo RowUpdanting, vc chamar um outro metodo que retorna algo, não void. Assim caso a quantidade 01 seja maior que a quantidade 02, vc retorna true ou false e para a execução.   Me avise se funcionou, ok? Tente usar o throw, é o mais sugerido.   Aguardo Att   Luiz Maia
GOSTEI 0
Eduardo Pereira

Eduardo Pereira

08/06/2009

Ok
Gerei uma excessão e funcionou sim.
Obrigado.
GOSTEI 0
Luiz Maia

Luiz Maia

08/06/2009

Blz, Precisando é do falar.   Abraços Att Luiz Maia
GOSTEI 0
POSTAR