2012-06-08 21 views
6

Piszę projekt ASP.NET w języku C#.Pobierz tekst z asp: textbox

Strona UpdateUserInfo.aspx składa się z pól tekstowych i przycisku. W metodzie pageLoad() ustawiam tekst w polu tekstowym, a po przyciśnięciu przycisku otrzymuję nową wartość pola tekstowego i zapisuję go w DB.

Problem jest, nawet jeśli zmieniłem wartość textbox. Metoda text() zwraca starą wartość textbox ("sometext") i zapisuje ją w DB.

Oto sposoby:

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); 
} 

Więc jak zrobić tekstowe mogą być wyświetlane SomeValue początkowo, ale gdy użytkownik zmienia wartość ta metoda getText zwracać nową wartość zmieniła się i piszę to w DB?

+1

można przeczytać tutaj http://stackoverflow.com/questions/829249/what-does-ispostback-actually-mean – Ravia

Odpowiedz

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

Postback jest ustawienie właściwości tekstu textboxs powrotem do "somevalue" na kliknięcia przycisku, będziemy chcieli, aby ustawić wartość tylko raz jak wyżej.

Postback wyjaśnił:

W kontekście rozwoju internetowej ASP, odświeżenie strony jest inna nazwa HTTP POST. Na interaktywnej stronie internetowej zawartość formularza jest wysyłana do serwera na numer w celu przetworzenia niektórych informacji. Następnie serwer wysyła nową stronę z powrotem do przeglądarki.

Ma to na celu sprawdzenie haseł do logowania, przetwarzać on-line formularz zamówienia, lub innych takich zadań, które komputer kliencki nie może zrobić na własnej. Nie należy tego mylić z odświeżaniem lub cofaniem akcji wykonanych za pomocą przycisków w przeglądarce.

Source

czytania na View State będą również pomocne w zrozumieniu, jak to wszystko do siebie pasuje.

+0

Proszę wyjaśnić, co to jest PostBack, proszę? .. – Nurlan

+0

Aktualizacje metody Btn_Click strona, tj. Polecenie page_load jest również wywoływane po kliknięciu przycisku tak? Funkcja PostBack służy do informowania, że ​​przycisk wywołał metodę Page_load. Czy mam rację? – Nurlan

+1

Zdarzenie kliknięcia przycisku powoduje odświeżenie. Wczytanie strony jest wywoływane podczas ładowania strony po raz pierwszy lub z powodu odświeżenia strony. Twój wiersz kodu jest stosowany przy pierwszym ładowaniu strony + dla wszystkich następnych postbacków, więc twoja nowa wartość nigdy nie jest ustawiona. W przyszłości, jeśli chcesz, aby jakiś kod był uruchamiany tylko raz, kiedy strona ładuje się najpierw, a nie na post-backach, musisz umieścić go wewnątrz bloku '! Page.IppStBack'. – dtsg

1

Faktycznie na stronie obciążenia textbox jest ponownie 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

Proszę sprawdzić stronę PostBack w Imprezie wczytywania strony ....

2

Spróbuj tego:

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