Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Leggere valore aggiornato di un controllo

    Salve
    Ho cercato molto ma non sono riuscito a trovare una risposta a questo problema: se io ho una pagina ASPX con un comune campo di testo (o comunque un qualsiasi controllo che contenga testo) il cui contenuto è letto da database ma che può essere modificato, come faccio a far sì che legga il contenuto aggiornato dopo le modifiche? Riepilogo le fasi teoriche:

    - La pagina legge da DB il testo e lo mette nel controllo;
    - L'utente può modificare a piacimento quel testo;
    - L'utente successivamente fa un Submit e il nuovo testo viene memorizzato al posto del vecchio.

    Nella terza fase, non riesco a fargli leggere il nuovo testo, rimane sempre quello vecchio. Come potrei risolvere? Premetto che il controllo che voglio far funzionare non ha la proprietà AutoPostBack. Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Cimp
    Registrato dal
    Nov 2006
    Messaggi
    28
    con asp net questo meccanismo (di persistenza dei dati inviati dall'utente nel controllo) è un meccasnismo fornito di default, deduco che il tuo controllo non solo non ha la proprietà autopostback, ma non entra nemmeno nel viewstate, e non ha un ControlState che compensi.
    Allora, ogni volta che scrivi nel db, dovresti rileggere dal db stesso il valore scritto e assegnarlo al controllo. Se sei sempre certo che la scrittura vada a buon fine (ovvero che nel Db è entrato proprio quello che hai scritto) potresti evitare la rilettura e assegnare direttamente il valore al controllo.

    Tuttavia senza un esempio di quel che stai effettivamente facendo è un po' difficile aiutarti di più

  3. #3
    Il problema è che mi si verifica anche in un controllo dropdownlist. Ho delle istruzioni eseguite nell'evento valuechanged che prendono in input il selectedvalue del controllo, il quale però è sempre il primo della lista indipendentemente da cosa ho selezionato...

  4. #4
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    Originariamente inviato da itised
    Il problema è che mi si verifica anche in un controllo dropdownlist. Ho delle istruzioni eseguite nell'evento valuechanged che prendono in input il selectedvalue del controllo, il quale però è sempre il primo della lista indipendentemente da cosa ho selezionato...
    Forse non ho capito bene il problema ma a me le ddl funzionano sempre alla perfezione posto un piccolo esempio appena provato

    code.aspx
    codice:
        <form id="form1" runat="server">
        <div>
            <asp:DropDownList ID="ddlItem" runat="server"  AutoPostBack="true"
                onselectedindexchanged="ddlItem_SelectedIndexChanged">
            </asp:DropDownList>
            
            
    
            Selected Valure :<asp:Label ID="lblSelectedValue" runat="server" Text=""></asp:Label>
        </div>
        </form>
    code.aspx.cs
    codice:
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ddlItem.DataSource  = new List<ListItem> { 
                    new ListItem("primo"), 
                    new ListItem("secondo"), 
                    new ListItem("terzo") };
    
                ddlItem.DataBind();
            
            }
        }
        protected void ddlItem_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblSelectedValue.Text = ddlItem.SelectedValue;
        }
    }
    se lo provi ad eseguire vedrai che il selectedValue contine l'ultimo valore selezionato a meno che tu nn abbia disattivato il viewstate ho fatto qualche altro tipo di errore ...

  5. #5
    Utente di HTML.it L'avatar di Cimp
    Registrato dal
    Nov 2006
    Messaggi
    28

    ...viewState...?

    ...Per caso, hai disabilitato il viewstate per quei controlli o a livello di pagina?

  6. #6
    Grazie a tutti, il problema era semplicemente un omesso If not page.ispostback nell'evento load della pagina

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.