WinForm - DataGridTextBox - Erro de navegação
29/12/2005
0
Quem tiver o projeto TimeSheet publicado na revista MSDN Magazine - Vol 1 -
5a. Edição, poderá testar esse problema.
Basicamente, imagine dois ou três DataGrids em um form.
Um dataset é carregado com dados de várias tabelas relacionadas 1-N.
Para um dos GRIDs, SetDataBinding é carregado com o DataSource = dataset e
DataMember = ´TabelaMestre´.
Os outros grids são carregados cada um com um relacionamento 1-N da tabela
mestre e o mesmo dataset como DataSource. Exemplo do DataMember de um grid
filho: ´TabelaMestre.Relacionamento1Filho´.
O resultado, vocês já entenderam. Quando selecionamos uma linha no GRID
Mestre, automaticamente os GRIDS vinculados são atualizados com os registros
relacionados (1-N).
As colunas, nos três grids, foram otimizadas com TableStyles e
GridColumnStyles.
-> O ERRO < -
1) Nas DataGridTextBoxColumn de um dos GRIDs filhos marque a proprieade
ReadOnly como = True (não queremos que o usuário altere o conteúdo da célula,
pois poderia ser um ID daquele registro).
2) Execute a aplicação, que irá carregar o dataset e atribuir DataBinding
aos GRIDS. O primeiro registro do GRID Master é posicionado e os outros dois
GRIDS exibirão os registros relacionados com a row ativa do mestre.
3) Posicione o mouse sobre uma das colunas ReadOnly de um dos GRIDs filho...
4) Agora, no GRID mestre, mude a row selecionada.
5) Observe que o TextBox que está embutido no DataGridTextBoxColumn daquela
célula selecionada no Grid filho não foi atualizado. Inclusive, se nesse novo
relacionamento não existir a linha correspondente, o textbox ´fastasma´
permanece na tela. Quando você clicar sobre o GRID, o textbox some....
Alguém já passou por isso ?
5a. Edição, poderá testar esse problema.
Basicamente, imagine dois ou três DataGrids em um form.
Um dataset é carregado com dados de várias tabelas relacionadas 1-N.
Para um dos GRIDs, SetDataBinding é carregado com o DataSource = dataset e
DataMember = ´TabelaMestre´.
Os outros grids são carregados cada um com um relacionamento 1-N da tabela
mestre e o mesmo dataset como DataSource. Exemplo do DataMember de um grid
filho: ´TabelaMestre.Relacionamento1Filho´.
O resultado, vocês já entenderam. Quando selecionamos uma linha no GRID
Mestre, automaticamente os GRIDS vinculados são atualizados com os registros
relacionados (1-N).
As colunas, nos três grids, foram otimizadas com TableStyles e
GridColumnStyles.
-> O ERRO < -
1) Nas DataGridTextBoxColumn de um dos GRIDs filhos marque a proprieade
ReadOnly como = True (não queremos que o usuário altere o conteúdo da célula,
pois poderia ser um ID daquele registro).
2) Execute a aplicação, que irá carregar o dataset e atribuir DataBinding
aos GRIDS. O primeiro registro do GRID Master é posicionado e os outros dois
GRIDS exibirão os registros relacionados com a row ativa do mestre.
3) Posicione o mouse sobre uma das colunas ReadOnly de um dos GRIDs filho...
4) Agora, no GRID mestre, mude a row selecionada.
5) Observe que o TextBox que está embutido no DataGridTextBoxColumn daquela
célula selecionada no Grid filho não foi atualizado. Inclusive, se nesse novo
relacionamento não existir a linha correspondente, o textbox ´fastasma´
permanece na tela. Quando você clicar sobre o GRID, o textbox some....
Alguém já passou por isso ?
Licitec
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)