2012-06-08 2 views
6

Sto scrivendo progetto ASP.NET in C#.Ottenere testo da asp: casella di testo

La pagina UpdateUserInfo.aspx è costituita da caselle di testo e pulsante. Nel metodo pageLoad() imposto del testo nella casella di testo e quando viene premuto il pulsante ottengo il nuovo valore della casella di testo e lo scrivo nel DB.

Il problema è anche se ho modificato il valore di textbox textbox.Text() metodo restituisce il vecchio valore di textbox ("sometext") e lo scrive in DB.

Ecco le modalità:

protected void Page_Load(object sender, EventArgs e) 
{ 
    textbox.text = "sometext"; 
} 

void Btn_Click(Object sender,EventArgs e) 
{ 
    String textbox_text = textbox.text();// this is still equals "somevalue", even I change the textbox value 
    writeToDB(textbox_text); 
} 

Allora, come fare testo appaia con somevalue inizialmente, ma quando utente cambia questo metodo getText valore di ritorno il nuovo valore modificato e scrivere questo in DB?

+1

potete leggere qui http://stackoverflow.com/questions/829249/what-does-ispostback-actually-mean – Ravia

risposta

16
protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
     textbox.text = "sometext"; 
    } 
} 

postback sta impostando la proprietà textboxs testo al "somevalue" sul pulsante di scatto, ti consigliamo di impostare il valore solo una volta come sopra.

Postback spiegato:

Nel contesto di sviluppo web ASP, un postback è un altro nome per HTTP POST. In una pagina Web interattiva, il contenuto di un modulo viene inviato al server per l'elaborazione di alcune informazioni. Successivamente, il server invia una nuova pagina al browser.

Questo viene fatto per verificare le password per l'accesso, elaborare un modulo d'ordine online o altre attività simili che un computer client non può eseguire su proprio. Questo non deve essere confuso con le azioni di aggiornamento o back prese dai pulsanti sul browser.

Source

lettura su View State sarà anche utile per capire come tutto si adatta insieme.

+0

Potresti spiegare cos'è PostBack, per favore? .. – Nurlan

+0

Quindi gli aggiornamenti del metodo Btn_Click Pagina, cioè. Anche il Page_load viene chiamato quando si fa clic sul pulsante si? E PostBack viene utilizzato per informare che il pulsante ha chiamato il metodo Page_load. Ho ragione? – Nurlan

+1

L'evento di clic del pulsante provoca un postback. Il caricamento della pagina viene chiamato al caricamento della pagina, sia per la prima volta che a causa di un postback. La tua linea di codice viene applicata la prima volta che la pagina viene caricata + per tutti i postback successivi, quindi il tuo nuovo valore non viene mai impostato. In futuro, se desideri che un codice venga eseguito una volta sola quando la pagina viene caricata per la prima volta e non sui postback, devi inserirla nel blocco '! Page.IsPostBack'. – dtsg

1

In realtà a pagina carico textbox è ri-initilized

protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      textbox.text = "sometext"; 
     } 
    } 
    void Btn_Click(Object sender,EventArgs e) 
    { 
     String textbox_text = textbox.text; 
     writeToDB(textbox_text); 
    } 
1

favore controllare pagina PostBack in caso di caricamento della pagina ....

2

Prova questo:

If (!IsPostBack) 
{ 
textbox.text = "sometext"; 
}