2012-06-08 4 views
6

Я пишу проект ASP.NET на C#.Получить текст из asp: textbox

Страница UpdateUserInfo.aspx состоит из текстовых полей и кнопок. В методе pageLoad() я устанавливаю некоторый текст в текстовое поле, а при нажатии кнопки я получаю новое значение текстового поля и записываю его в БД.

Проблема, даже если я изменил значение textbox textbox.Text() метод возвращает старое значение текстового поля ("sometext") и записывает это в БД.

Здесь методы:

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

Итак, как сделать текстовое поле, чтобы появиться с SomeValue изначально, но когда пользователь изменяет это значение метод GetText возвращает новое измененное значение и написать это в БД?

+1

Вы можете прочитать здесь http://stackoverflow.com/questions/829249/what-does-ispostback-actually-mean – Ravia

ответ

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

Postback является установка полей ввода текста свойство обратно "somevalue" на кнопку мыши, вы хотите, чтобы установить значение только один раз, как описано выше.

Postback объяснил:

В контексте веб-разработки ASP, обратная передача другое название HTTP POST. На интерактивной веб-странице содержимое формы отправляется на сервер для обработки некоторой информации. После этого сервер отправляет новую страницу обратно в браузер.

Это делается для проверки паролей для входа в систему, обработки формы заказа в режиме on-line или других подобных задач, которые клиентский компьютер не может выполнить с помощью . Это не следует путать с обновленными или обратными действиями, сделанными кнопками в браузере.

Source

Чтение на View State также будет полезно понять, как все это совмещается.

+0

Не могли бы вы объяснить, что такое PostBack, пожалуйста? .. – Nurlan

+0

Итак, обновления метода Btn_Click страница, то есть. Page_load также вызывается при нажатии кнопки да? PostBack используется, чтобы сообщить, что кнопка вызвала метод page_load. Я прав? – Nurlan

+1

Событие нажатия кнопки вызывает обратную передачу. Загрузка страницы вызывается, когда страница загружается, либо в первый раз, либо из-за обратной передачи. Ваша строка кода применяется при первой загрузке страницы + для всех последующих обратных передач, поэтому ваше новое значение никогда не устанавливается. В будущем, если вы хотите, чтобы какой-то код запускался один раз, когда страница загружалась первой, а не на обратной стороне, вы должны поместить ее в блок '! Page.IsPostBack'. – dtsg

1

На самом деле на странице загрузки textbox повторно 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

Пожалуйста, проверьте постбэк в случае загрузки страницы ....

2

Попробуйте это:

If (!IsPostBack) 
{ 
textbox.text = "sometext"; 
} 
Смежные вопросы