ciao,
ho fatto la gestione dei prodotti, però ho notato che il DataGrid non si aggiorna finchè non ricarico la pagina. Come devo fare per farla aggiornare in automatico? cioè appena cancello un record o lo aggiorno?
grazie
ciao,
ho fatto la gestione dei prodotti, però ho notato che il DataGrid non si aggiorna finchè non ricarico la pagina. Come devo fare per farla aggiornare in automatico? cioè appena cancello un record o lo aggiorno?
grazie
databind sul datagrid quando fai un cambiamento/aggiornamento
koning
ok per la cancellazione funziona, però quando io faccio un Update questo non va.
Praticamente l'update la faccio in un altra pagina update.aspx poi una volta finito di modifcare i dati faccio il redirect sulla pagina dove ho il datagrid però i dati non mi vengo aggiornati.
da che dipende?
Sub Page_Load(Sender As Object, E As EventArgs)
if not page.ispostback then
MyDataGrid.VirtualItemCount = 0
binddata()
end if
end sub
verifica che l'update faccia veramente quello che deve...
ps...tu usi gli oggetti dataadapter e dataset presenti sull'editor di VB.NET oppure li scrivi da codice??
koning
codice:Sub Aggiorna_Dati(Sender As Object, E As EventArgs) Dim objCmd as new OleDbCommand(Query_Aggiorna_Dati(Request.QueryString("codice")) , objConn) objConn.Open try objCmd.ExecuteNonQuery() lblmessage.text="Aggiornato" response.redirect("lista.aspx") catch ex as exception lblmessage.text="ERRORE" end try objConn.Close End Sub function Query_Aggiorna_Dati(ByVal cod as string) as string return "UPDATE Prodotti SET Codice='"& Codice.Text &"', Titolo='"& Titolo.Text &"', Prezzo='"& Prezzo.Text &"', Img='prova.jpg', Categoria='"& Categoria.items(Categoria.SelectedIndex).Value &"', Disciplina='"& Disciplina.items(Disciplina.SelectedIndex).Value &"' WHERE Codice='"& cod &"' " end function
ad aggiornare aggiorna soltanto devo fare il refresh per vedere l'aggiornamento.
dovresti provare a riaggiornare anche il dataset oltre che il datagrid....
spero che la soluzione sia quella, perchè adesso sono un pò cotto e non riesco a pensare ad altre soluzioni
koning
squesto è il mio 2° giorno di .NET,
perciò spiegami come farei a riaggiornare il DataSet.
grazie
questa funzioncina la uso per ricaricare i datagrid quando faccio qualsiasi cos che lo riguarda
Public Sub ricarica(ByVal str As String, ByVal griglia As DataGrid)
Dim DS As New DataSet()
Dim sqlConnection1 As New SqlConnection(string_conn)
Dim sqlAdapter1 As New SqlDataAdapter(string, sqlConnection1)
Dim tabella As New DataSet()
sqlAdapter1.Fill(DS)
GetData = tabella
sqlConnection1.Close()
griglia.DataSource = DS.Tables(0).DefaultView
griglia.DataBind()
End Sub
ds è il tuo dataset; se tu hai già disponibili questi oggetti, ovviamente è inutile ricaricarli
koning
io faccio la stessa cosa:
però il problema rimane, quando dalle pagine insert.aspx e update.aspx vengo rediretto sulla pagina lista.aspx i record che sono visualizzati non sono aggiornati fichè non faccio il refresh.codice:Sub Page_Load(Sender As Object, E As EventArgs) if not page.ispostback then MyDataGrid.VirtualItemCount = 0 binddata() end if end sub sub binddata() Dim DS As DataSet Dim MyCommand As OleDbDataAdapter dim quanti as integer objConn.Open() if MyDataGrid.VirtualItemCount =0 then Dim myCommand2 As New OleDbCommand("select count(*) from Prodotti", objConn) quanti=mycommand2.executeScalar() MyDataGrid.VirtualItemCount = quanti else quanti=MyDataGrid.VirtualItemCount end if MyCommand = New OleDbDataAdapter("select codice,titolo,prezzo,disciplina,categoria from Prodotti", objConn) DS = new DataSet() MyCommand.Fill(ds,(start_index*20),20, "Prodotti") dim source as dataview=ds.Tables("Prodotti").DefaultView MyDataGrid.DataSource=source MyDataGrid.DataBind() objConn.close() lblMessage.Text = "Pagina " & MyDataGrid.CurrentPageIndex+1 & _ " di " & MyDataGrid.PageCount & _ ". Record presenti=" & quanti End Sub