Atualização dos dados com ListView.


Author
Message
Valdair Ziegler
Valdair Ziegler
StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)
Group: Forum Members
Posts: 22, Visits: 481
Olá pessoal..

Tenho um form com uma ListView e alguns TextBox ligados ao BO que uso para manutenção dos dados. Para inserir os dados, sem problemas, mas como faço para que o usuário possa alterar os dados clicando na ListView.

Ex: Quando o usuário clicar num registro qualquer disponível na ListView como faço para que os dados referentes a esse registro sejam mostrados nos TextBox´s. Assim o usuário poderá estar alterando direto, sem a necessidade de navegar em outros controles.

Exclamation

Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Olá Valdair.

O controle ListView possue alguns eventos interessantes, um deles é o SelectedIndexChanged. Quando o usuário clickar em outra linha no seu ListView, este evento será chamado, e você pode colocar código nele e fazer qualquer tratamento que seja necessário, como um refresh dos seus outros controles.

Dê uma olhada nos Samples, lá você vai encontrar uma solução chamada SampleListViewPopulation, qu popula um outro ListView dependendo da linha em que o usuário clicka.

Espero que te ajude.

Valdair Ziegler
Valdair Ziegler
StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)StrataFrame Beginner (22 reputation)
Group: Forum Members
Posts: 22, Visits: 481
Ok Ivan. Eu já havia verificado esse exemplo mas o que preciso fazer é um pouco diferente.

Na tela acima tenho os campos para manutenção dos dados e o listView para visualização. O listView está ligado ao BO asssim como os campos.

Para popular o ListView uso o método "meuBO.CopyDataFrom(MicroFour.StrataFrame.Business.BusinessLayerBase,MicroFour.StrataFrame.Business.BusinessCloneDataType)".

ListPopulating(MicroFour.StrataFrame.UI.ListPopulatingEventArgs e){

e.Parameters[0].Value = MeuBO;

e.Parameters[1].Value = MicroFour.StrataFrame.Business.BusinessCloneDataType.ClearAndFillFromCompleteTable;

}

Como faço para que os campos sejam atualizados com os dados do registro selecionado na ListView para que o usuário possa alterar ou excluir os dados da linha selecionada?

Abraços.

Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Vamos usar o SelectedIndexChanged do ListView para atualizar seus campos.

Você provavelmente saiba como chegar nele, mas só para deixar documentado. Selecione seu ListView, na janela de propriedades, click no "raiozinho" na toolbar. Encontre o evento SelectedIndexChanged e dê um duplo click nele. Aí, codifique algo como o exemplo abaixo:

    Private Sub MeuListView_SelectedIndexChanged(ByVal sender As System.Object, _
                                                 ByVal e As System.EventArgs) _
                                                 Handles MeuListView.SelectedIndexChanged

        '-- Verifica se há alguma linha selecionada

        If Me.MeuListView.SelectedItems.Count = 0 Then
            Exit Sub
        End If

        '-- Já que o membro (tag) para cada row é a primary key (set a primary key
        'de sua tabela), nós podemos usar este valor para navegar diretamente o
        'nosso BO.  Esta Tag foi setada no PopulationDataSourceSettings do ListView

        Me.MeuBO1.NavigateToPrimaryKey(CType(Me.MeuListView.SelectedItems(0).Tag, Integer))

    End Sub

Quando usamos o NavigateToPrimaryKey, ele navega até a row do seu business object e faz um refresh de todos bound controls do seu form.

Deu para pegar a idéia? Se não, dá um toque e tentamos de novo.


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search