Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    VIEWSTATE e refresh pagina

    Scusate sto studiando asp.net e mi sono imbattuto nel __VIEWSTATE

    Se ho capito vuol dire che se per esempio seleziono un elemento di una select per esempio se presente il runat server al ricaricamento della
    pagina la select rimane selezionata su l'ultimo valore selezionato.
    La domanda è:

    allora perchè se metto enableviewstate="false" rimane selezionato lo stesso? Non dovrebbe perdere il valore come succedeva con asp?
    Tony

  2. #2
    Utente di HTML.it L'avatar di fede_00
    Registrato dal
    May 2004
    Messaggi
    279
    può inviare uno spezzone di codice?

  3. #3
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    codice:
    <%@ Page Language="C#" %>
    
    <script language="javascript">
        function funzionePippo() {
            alert("Funziona!..");
        }
    </script>
    
    <script language="C#" runat="server">
        String descrizione;
        static int contatore; // Senza static la variabile perderebbe il valore
        private void Page_PreInit(object sender, EventArgs e)
        {
            /*
            C'è un hidden field dal nome __VIEWSTATE che voi non avevate inserito nel 
            codice sorgente della pagina .aspx. 
            Questo campo viene infatti inserito automaticamente dal sistema e serve per il 
            mantenimento dello stato del sistema per quegli elementi di cui avete specificato 
            l'attributo runat="server"
            Infatti gli elementi messi come Runat Server sono elementi che vengono mantenuti nonostante
            la pagina riaggiornata!.. 
            */
            
            // STUDIARE!..
            // Code behind e code beside
            // Html Controls specifici
            
            Response.Write("EVENTO: Page_PreInit
    ");
            descrizione = "Utilizzare la proprietà IsPostBack per determinare se la pagina viene elaborata per la prima volta.
    " +
                          "Creare o ricreare controlli dinamici.
    " +
                          "Impostare una pagina master in modo dinamico.
    " +
                          "Impostare la proprietà Theme in modo dinamico.
    " +
                          "Leggere o impostare i valori delle proprietà dei profili..
    " +
                          "Se la richiesta è un postback, i valori dei controlli non sono ancora stati ripristinati dallo stato di visualizzazione. Se in questa fase viene impostata una proprietà del controllo, il relativo valore potrebbe essere sovrascritto nella fase successiva.
    ";
            Response.Write(descrizione);
            if (!Page.IsPostBack)
            {
                Response.Write("
    <HR>Ma lo sai che è la prima volta che entro qui?
    <HR>");
                this.inputNome.Value = inputNome.Value;
            }
            else
            {
                Response.Write("
    <HR>Non è la prima volta che entro qui!!..
    <HR>");
            }
        }
        private void Page_Init(object sender, EventArgs e)
        {
            Response.Write("EVENTO: Page_Init
    ");
            descrizione = "Leggere o inizializzare le proprietà dei controlli.
    ";
            Response.Write(descrizione);
    
        }
        private void Page_load(object sender, EventArgs e)
        {
            Response.Write("EVENTO: page_load
    ");
            descrizione = "Leggere e aggiornare le proprietà dei controlli.
    ";
            Response.Write(descrizione);
            contatore++;
            Response.Write("
    <HR>SONO PASSATO PER DI QUI!!.. Numero di volte: " + contatore + " Grazie Static<HR>
    ");
        }
        private void Page_loadComplete(object sender, EventArgs e)
        {
            Response.Write("EVENTO: page_loadComplete
    ");
            descrizione = "Effettuare l'elaborazione specifica dell'applicazione:
    " +
                          "Se la pagina contiene controlli di convalida, verificare la proprietà IsValid della pagina e dei singoli controlli di convalida prima di eseguire qualsiasi attività di elaborazione.
    " +
                          "Gestire l'evento specifico, ad esempio l'evento Click di un controllo Button.
    ";
            Response.Write(descrizione);
        }
        private void Page_PreRender(object sender, EventArgs e)
        {
            Response.Write("EVENTO: Page_PreRender
    ");
            descrizione = "Apportare le modifiche finali ai contenuti della pagina.
    ";
            Response.Write(descrizione);
        }
    
        private void Page_PreRenderComplete(object sender, EventArgs e)
        {
            Response.Write("EVENTO: Page_PreRenderComplete --> Control events
    ");
            descrizione = "Apportare le modifiche finali ai contenuti della pagina.
    ";
            Response.Write(descrizione);
            Response.Write("EVENTO: Page_Unload
    ");
            descrizione = "Eseguire le operazioni di pulitura finali, che possono includere:
    " +
                        "Chiusura di file e connessioni ai database aperti.
    " +
                        "Termine della registrazione o di altre attività specifiche della richiesta.
    " +
                        "Durante la fase di scaricamento, è stato effettuato il rendering della pagina e dei relativi controlli. Pertanto, non è possibile apportare ulteriori modifiche al flusso di risposte. Se si cerca di chiamare un metodo, quale il metodo Response.Write, la pagina genererà un'eccezione.
    ";
            Response.Write(descrizione);
        }
        private void Page_Unload(object sender, EventArgs e)
        {
            
        }
        void SubmitBtn_Click(Object sender, EventArgs e)
        {
            Body.Attributes["bgcolor"] = ColorSelect.Value; // puoi mantere li stessi valori con questo metodo
        }
        private void saluta(object sender, EventArgs e)
        {
            Response.Write("
    <HR><FONT COLOR='blue'>Hello " + inputNome.Value + "</FONT>
    <HR>");
            this.inputNome.Value = inputNome.Value;  // puoi mantere li stessi valori con questo metodo
            this.label1.Text = "
    <HR>Ripeto mi chiamo: " + this.inputNome.Value + "<HR>
    ";  // puoi mantere li stessi valori con questo metodo
        }
    </script>
    
    <html>
    <head runat="server">
        <title>CIAO</title>
    </head>
    <body id="Body" runat="server"> 
        <form id="form1" runat="server">
            
    
            
    
            Scrivi il tuo nome:
            <input id="inputNome" runat="server" type="text" />
            <input id="buttonSalva" runat="server" type="button" value="clicca" onserverclick="saluta" />
            <font color="blue">
                <asp:Label ID="label1" runat="server" BackColor="blue" /></font>
            
    
    
                Seleziona un colore di background per la pagina:
            
    
    
                <select id="ColorSelect" runat="server" enableviewstate="true">  
                    <option value="White">Bianco</option>
                    <option value="LightBlue">Celeste</option>
                    <option value="LightGreen">Verde</option>
                    <option value="Yellow">Giallo</option>
                </select>
                
    
     Infatti questo valore non viene mantenuto in asssenza del runat="server"
                
    
                <select id="ColorSelect2">
                    <option value="White">Bianco</option>
                    <option value="LightBlue">Celeste</option>
                    <option value="LightGreen">Verde</option>
                    <option value="Yellow">Giallo</option>
                </select>
                <input id="Submit1" type="submit" runat="server" value="Applica" onclick="JavaScript: alert('Se ad esempio selezionate il valore Verde, al successivo caricamento della pagina quello rimane elemento selezionato, ossia elemento che come sorgente html ha option value=LightGreen selected.\nIl mantenimento dello stato è un altra caratteristica molto utile ed importante di questo ambiente di sviluppo');" onserverclick="SubmitBtn_Click">
                <input type="reset" />
          </form>  
          Vai alla seconda pagina
    </body>
    </html>
    Tony

  4. #4
    Utente di HTML.it L'avatar di fede_00
    Registrato dal
    May 2004
    Messaggi
    279
    usa i controlli server tipo <asp:ListBox <asp:Button ecc. e la vita si semplifica
    poi ti gestisci il viewstate o altro come vuoi altrimenti con i controlli non server devi farti tutto a mano
    nel codice c'è un mix tra eventi client ed eventi server che non so quanto ti convenga portarlo avanti

  5. #5
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Originariamente inviato da fede_00
    usa i controlli server tipo <asp:ListBox <asp:Button ecc. e la vita si semplifica
    poi ti gestisci il viewstate o altro come vuoi altrimenti con i controlli non server devi farti tutto a mano
    nel codice c'è un mix tra eventi client ed eventi server che non so quanto ti convenga portarlo avanti
    Il codice come avrai capito è una pagina di prova, per studia!!

    Ok quindi l'errore è stato di non usare i tag html di asp.net??
    Tony

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.