2010-06-01 2 views
1

Я начинаю работать в asp.net, и у меня возникают проблемы, которые я не понимаю. Проблема в том, что я создаю сайт для новостей. Каждая новость имеет название и тело. У меня есть страница, где я могу вставлять новости, эта страница использует текстовое поле для каждого из полей (название и тело), ​​после нажатия кнопки отправки все идет нормально и сохраняет значения в базе данных. И o есть другая страница, где я могу читать новости, я использую метки для каждого из лагерей, эти метки определены в Page_Load. Теперь у меня возникают проблемы на странице, где я могу редактировать новости. Я загружаю два текстовых поля (название и тело) в Page_Load, насколько это хорошо, но затем, когда я меняю текст, и я нажимаю кнопку отправки, он игнорирует изменения, которые я сделал в тексте, и сохраняет текст, загруженный в Page_Load ,Проблемы с обновлением textBox ASP.NET

Этот код не отображает подключений базы данных, но вы можете понять, о чем я говорю.

protected void Page_Load(object sender, EventArgs e) 
    {   
     textboxTitle.Text = "This is the title of the news";  
     textboxBody.Text = "This is the body of the news ";   
    } 

Загрузите страницу, внесите изменения в текст и нажмите кнопку «Отправить».

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     String title = textboxTitle.Text;   
     String body = textboxBody.Text; 
     Response.Write("Title: " + title + " || "); 
     Response.Write("Body: " + body); 
    } 

Ничего не происходит, текст в текстовых полях всегда один я загружен в Page_Load, как обновить текст в текстовых полях?

ответ

5

Page_Load выполняется каждый раз, когда запрашивается ваша страница. Если вы выполняете одноразовую операцию настройки для заполнения текстовых полей, не переставляйте их при каждом запросе.

Вы можете сделать это, установив флаг IsPostBack только для выполнения кода инициализации один раз.

protected void Page_Load(object sender, EventArgs e) 
    {   
     if (!Page.IsPostBack) 
     { 
      textboxTitle.Text = "This is the title of the news";  
      textboxBody.Text = "This is the body of the news ";   
     } 
    } 
0

Похоже, вам нужно проверить переменную IsPostBack следующим образом:

if(!Page.IsPostBack) 
{ 
    textboxTitle.Text = "This is the title of the news";  
    textboxBody.Text = "This is the body of the news "; 
} 

Таким образом, вы только установить тэ текст управления по запросу на первой странице. В качестве альтернативы вы можете просто указать этот текст непосредственно в элементе управления HTML, не используя код в .cs.