Posizionarsi su un record del database con bindingnavigatorpositionite...

venerdì 30 marzo 2007 - 17.35

13600210 Profilo | Newbie

Ciao,
utilizzo VBNET,
ho una tabella access con un campo id numerato da 1 a n, tale che i records corrispondono numericamente a quanto mostrato in BINDINGNAVIGATORPOSITIONITEM.
Ora se cambio quest'ultimo digitandogli il numero di record desiderato, lo punta correttamente nella tabella e posso modificare i dati ecc.
Se da questo momento in poi mi sposto con BNprevious o BNnext non ritrovo più la corrispondenza di posizione, bensì risulta uno sfasamento di 1.

Esempio ho digitato 2810 in BNpositionitem, trova il record esatto, poi mi sposto indietro o in avanti il BINDINGSOURCE punta ancora a 2810, anche se i dati associati che mi mostra sono esatti.
Come mai.

Comunque il mio problema è quello di puntare direttamente ad un record senza utilizzare il FILTER del BINDINGSOURCE .
Suggerimenti?
Grazie

Cteniza Profilo | Guru

Prova ad utilizzare il metodo Find.
esempio:
Dim k As Integer = myBindingSource.Find("Id",100)
myBindingSource.Position = k

13600210 Profilo | Newbie

Private Sub BindingNavigatorPositionItem_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingNavigatorPositionItem.LostFocus
If BindingNavigatorPositionItem.Text <> "" Then
ProtocolloBindingSource.Position = BindingNavigatorPositionItem.Text - 1
repertorio = BindingNavigatorPositionItem.Text
TabControl1.SelectedIndex = 0
..................................................

Grazie per la risposta,
ho modificato secondo il tuo suggerimento cioè :

Private Sub BindingNavigatorPositionItem_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingNavigatorPositionItem.LostFocus
If BindingNavigatorPositionItem.Text <> "" Then
Dim k As Integer = ProtocolloBindingSource.Find("pi", BindingNavigatorPositionItem.Text)
ProtocolloBindingSource.Position = k
'''''''ProtocolloBindingSource.Position = BindingNavigatorPositionItem.Text - 1
repertorio = BindingNavigatorPositionItem.Text
TabControl1.SelectedIndex = 0

sembra funzionare, il problema sta forse nel "- 1" che ero costretto ad usare per avere l'allineamento visivo dei dati.
Faccio altre prove, poi ti aggiorno.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2013
Running on Windows Server 2008 R2 Enterprise, SQL Server 2008 & ASP.NET 3.5