|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[VB.NET]Caricamento dati una sola volta
Ciao a tutti
Il mio problema è questo: Ho degli oggetti che vengono caricati a runtime su di un form. Alcuni di questi oggetti sono legati ad una fonte dati e da essa traggono determinati valori. Ora mi succede questo: Sul form c'è un oggetto di tipo TabControl. In corrispondenza del TabPage 1, devo caricare determinati dati. Mi sembrava semplice utilizzando l'evento selected index changed... ...ma, ovviamente il codice che ho scritto viene eseguito ogni volta che questo tab viene selezionato e, di conseguenza, se l'utente aveva variato dei valori dal form, si ritrova con i valori precedenti al cambio tab. Mi sono detto quindi, vabbè, la funzione la eseguo durante il caricamento del form.... Ovviamente, non funziona, cioè, se lo stesso codice scritto nell'evento selectedIndexChanged lo metto nel Form_Load non ha alcun effetto. il codice incriminato è: Codice:
Sub BindColors(ByVal panel As Panel, ByVal idColor As Integer)
Try
Dim ds As New IndexColorTableAdapter.GetDescription
For Each gp As GroupBox in panel.Controls
For Each txt As TextBox in gp.Controls
Dim tblIndexColors As New DataSet
tblIndexColors.Tables.Add(ds.GetDataById(idColor, g.Text.SubString(0, 2))
txt.DataBindings.Add("Text", tblIndexColors.Tables(0), "Descrizione")
txt.DataBindings.Remove(txt.DataBindings("Text"))
Next
Next
Catch ex As Exception
'blabla
End Try
RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Quote:
|
||
|
|
|
|
|
#3 | ||
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Quote:
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
||
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Inoltre non hai considerato l'ipotesi di avere un DataSet in locale, che prenda ogni modifica utente e poi una volta sola aggiorni in blocco le modifiche a DB... Comunque se quel codice dici che funziona sul TabChange, una soluzione "furbetta" ce l'hai già a portata di mano : all'avvio del Form forzi la selezione del Tab via codice, una volta sola ( definendo e poi controllando un'apposita variabile Boolean a livello di Form... ). Allora : Codice:
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TabControl1.SelectTab("TabPage2")
TabControl1.SelectTab("TabPage1")
End Sub
Codice:
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
If TabControl1.SelectedTab.Name = "TabPage1" Then
MsgBox("Hai selezionato TabPage1")
End If
End Sub
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Ciao
Ho risolto in un altro modo credo abbastanza semplice. Ho impostato una variabile di tipo intero alla selezione del tab. Una volta che il tab è stato selezionato, la variabile assume valore '1'. Ogni volta che l'utente rientra in quel tab, se la variabile è uno allora i dati non vengono più caricati. Ho fatto diverse prove e sembra reggere. Grazie ancora. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Già.
Più o meno siamo arrivati alla stessa soluzione "furba"... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:18.




















