7 messaggi dal 27 luglio 2007
Ciao a tutti, sono Michele. Spero possiate essermi d'aiuto.
Vado dritto al sodo: sto sviluppando un'applicazione web in vb.net.
In alcune pagine ho la necessità di memorizzare all'interno di un attributo della classe della pagina (per intenderci quella che si crea autonomamente nel file nomepagina.aspx.vb del tipo "partial class nomepagina ...") un valore intero.
E fin qui nessun problema. In una sub (che rappresenta quindi un metodo della classe) setto il valore dell'attributo della classe.
Quando poi vado a richiamare un'altra sub (associata ad esempio ad un pulsante della pagina) e a prendere il valore settato precedentemente, questo mi viene azzerato perchè da quanto ho capito facendo debug, viene richiamato il costruttore prdefinito che azzera gli attributi della classe.
Scusate la mia ignoranza, ma come posso fare per evitare ciò e mantenere i valori settati?
Spero di essere stato chiaro e che possiate aiutarmi quanto prima!
Grazie mille in anticipo.
Michele

PS:
Per chiarezza vi allego il codice di esempio. Il problema è su idProd che viene azzerato ad ogni chiamata di una sub.

Partial Class aProdotti2
    Inherits System.Web.UI.Page
    Private idProd As Integer
    Private img1 As String
    Private img2 As String
    Private miniatura1 As String
    Private miniatura2 As String

    Protected Sub modifica(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles prodottiDataGrid.UpdateCommand
        Dim temp As Label = e.Item.FindControl("idProdottoLabel")
        idProd = CInt(temp.Text)
        temp = e.Item.FindControl("img1Label")
        img1 = temp.Text
        temp = e.Item.FindControl("img2Label")
        img2 = temp.Text
        prodottiDataGrid.Visible = False
        confermaPanel.Visible = True
    End Sub

Protected Sub aggiornaButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles aggiornaButton.Click
Dim connString As String = ConfigurationManager.ConnectionStrings("stringaconn").ConnectionString
        Dim query As String = "UPDATE prodotti(codProdotto, tipo, descrizione, qDisp, dimensioni, accessori, infoAggiuntive) VALUES ('" + codProdotto2TextBox.Text + "','" + tipo2Textbox.Text
        query = query + "','" + descrizione2TextBox.Text + "','" + qDisp2TextBox.Text + "','" + dim2FreeTextBox.Text + "','" + accessori2FreeTextBox.Text
        query = query + "','" + info2FreeTextBox.Text + "' WHERE idProdotto=" + idProd.ToString
        Dim temp As New Utility

        temp.eseguiQueryAccess(connString, query)
        modificaPanel.Visible = False
        statusPanel.Visible = True
        statusLabel.Text = "Aggiornamento riuscito con successo! Premi il tasto Ok per tornare all'elenco dei prodotti"
    End Sub

"The water's warm 'til u discover how deep"
492 messaggi dal 08 gennaio 2007
Ciao Michele, sembra che anche tu debba persistere il valore del campo tra una chiamata e l'altra della pagina, ogni volta che reinvii la pagina al server, perdi i valori, se ne discuteva anche qui.
http://forum.aspitalia.com/forum/post/310421/Problema-ArrayList.aspx
7 messaggi dal 27 luglio 2007
Ciao Vmark, grazie per la celere risposta!
Ho letto la discussione che m'hai segnalato: diciamo che ho voluto optare per gli attributi della classe proprio per evitare l'utilizzo delle var di sessione o di altri stratagemmi o scorciatoie. La cosa che mi viene ora in mente e che voglio chederti è se è possibile magari fare un overloading del costruttore della partial class andando magari a settare opportunamente le proprietà che mi servono. Anche perchè è un po' triste avere la possibilità di lavorare sulle classi e non poterla sfruttare.
Grazie
Maikey

"The water's warm 'til u discover how deep"
492 messaggi dal 08 gennaio 2007
Ciao, credimi che non mi è mai passato per la mente di farlo, attendiamo magari un commento da qualcuno più competente, di sicuro il viewstate è comodo, così come i profili ecc, sembra li abbiano previsti per queste evenienze

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.