Pergunta

Eu tenho um TcxGrid DevExpress, com um manipulador de eventos anexado ao evento OnEditValueChanged de seu GridView que é suposto para resumir alguns dados em uma das colunas. O problema é que este evento é disparado durante a validação, antes que o valor atualizado foi escrito para o conjunto de dados subjacente. Eu não estou muito familiarizado com o TcxGrid. Alguém sabe se existe uma maneira para disparar um manipulador de eventos após o conjunto de dados foi atualizado?

Foi útil?

Solução

Que tal usar o evento DataSource.OnDataChange?

Outras dicas

Eu não tenho certeza se isso é exatamente o que você precisa, mas eu descobri a opção ImmediatePost da grade para ser muito útil para situações em que eu preciso atualizar um resumo - é enterrado sob sua propriedade Controlador de Dados do cxView . Isso faz com que o ato de grade como uma planilha - assim que o usuário pressionar Enter ou Tab em uma célula, o registro é postado. Então eu teria meu fogo evento resumindo a partir do evento AfterPost do conjunto de dados, talvez?

(Você provavelmente já sabe disso, mas o próprio gridview tem um monte de opções Resumindo muito úteis incorporadas a ele - olhar para as propriedades de resumo das colunas, e certifique-se ShowFooter é definido como verdadeiro nas ViewOptions - por isso, se o seu resumo é um total relativamente simples ou médio ou similar, deixe a grade fazer tudo e poupar algum trabalho.)

Você usa a cxTableView ou cxDBTableView na cxGrid

Se você usa o cxDBTableView seguida, definir o seu evento no datasource.onchange da fonte de dados ligados na propriedade do cxDBTableView. (CxDBTableView .datacontroller.datasource)

Eu iria com skamradt:. Olhar mais atentamente para um evento que corresponda às suas expectativas

Caso contrário, você pode conectar seu evento depois de ter certeza de seus dados é inicializado:

 procedure TMyGrid.MyProc_OnDataLoaded( Sender : TObject ); //I made up this event, I'm not sure it exists
 begin
   Self.OnEditValueChanged := MyProc_OnEditValueChanged;
 end;

Eu recomendo fortemente que você não use isso como um habbit developping regulares (fazendo um evento definir outra chamada de retorno através de código é uma maneira de depuração inferno), mas se você realmente não encontrar nenhuma outra maneira de fazê-lo. ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top