Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Como recuperar Célula em edição no GridView


André Conrado

Pergunta

Olá,

Estou usando um DataGridView conectado a um ObjectDataSource que tem os métodos de busca, atualização e deleção. Quando eu clico no botão de atualizar, abre os campos disponíveis de alteração na Grid. Preciso implementar uma regra de negócio que valide um campo do grid a um valor do meu banco de dados. Pra isso, implementei a RowCommand, e quando estou no botão Atualizar, recupera os dados e faz a checagem.

O problema é que antes da Grid estar em Edição, ao clicar no botão Edit, na Row Command o valor da Célula que eu preciso está preenchido. Assim que eu altero o valor da célula e clico no botão de atualizar, a célula não é está com o valor que eu preciso. Implementei o cogido conforme abaixo:

protected void gvwLines_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int rowIndex = int.Parse(e.CommandArgument.ToString()); // Recuperando a Indice da Linha que está sendo alterada.
                PedidoLinesTO pedidos = GetLines(rowIndex); // Instanciando as Linhas do meu pedido com os valores da linha selecionada.
                if (e.CommandName.Equals("Update")) // Checando o Upodate.
                {
                     decimal qty = Convert.ToDecimal(gvwLines.Rows[rowIndex].Cells[(int)SalesQty].Text); // Esse é o valor que está vindo nulo e não o que foi digitado
//Eu criei um enumerate do Meu Grid para recuperar as células. No comando acima já ocorre um exception dizendo que string está com valor de conversão incorreta. Acredito que por estar nula.

                    if (!CheckInventory(pedidos.ItemId, pedidos.InventColorId, pedidos.SalesQty));
                    {
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                lblErrors.Text = ex.Message;
            }
        }

Alguém já teve algum problema similar ? É possível fazer esse checagem da forma com estou implementando ?

Obrigado,

André.

Editado por quintelab
Adicionado BBCode Code
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Para Editar, eu uso o Command Field - "Edit, Update, Cancel"

São necessário três eventos da Grid

Editar

Protected Sub gv_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gv.RowEditing
  gvPaginas.EditIndex = e.NewEditIndex
  Grid()
End Sub
Cancelar
Protected Sub gv_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles gv.RowCancelingEdit
  gvPaginas.EditIndex = -1
  Grid()
End Sub
Gravar Alteração
Protected Sub gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gv.RowUpdating
  'Para pegar o valor do textBox que esta na segunda coluna da minha grid
  Dim vv As TextBox = gv.Rows(e.RowIndex).Cells(2).Controls(0) 
  Update = ""
  ExecutaComando()

  gvPaginas.EditIndex = -1
  Grid()
End Sub

Abraços...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...