2010-06-09 5 views
0

может кто-то пожалуйста, объясните, почему этот код не работает, как ожидалось:page_load другой обработчик?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class temp : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Write("foo<br>"); 
     this.Load += new EventHandler(temp_Load); 

    } 

    void temp_Load(object sender, EventArgs e) 
    { 
     Response.Write("bar<br>"); 
     Response.End(); 
    } 
} 

пытается добавить еще один обработчик для события при загрузке страницы, так что результат будет:

foo<br> 
bar<br> 

EDIT:

Фактический объект исчезает и составляет воссоздан на обратной стороне. - ggonsalv

Так как же я могу изменить метод в памяти, чтобы он делал новые объекты с помощью этого модифицированного метода?

например, я хочу изменить или добавить обработчик page_init во время выполнения в следующий раз, когда страница загружается?

+0

Необходимо определить вашу проблему лучше. Я все еще пытаюсь найти аналогию, которая определяет вашу проблему. – ggonsalv

ответ

1

Необходимо зарегистрировать его на странице_Инте. К моменту появления страницы_страницы это будет поздно.

+0

, но если я зарегистрирую загрузчик загрузки страницы в существующем обработчике загрузки страницы, не нужно ли его поддерживать, когда я нажимаю кнопку обновления и запускаю? –

+0

Фактический объект исчезает и воссоздается при обратной передаче. – ggonsalv

+0

Нет события, которое не сохраняется на значениях элементов управления и т. Д. ... – ggonsalv

0

Вы не можете изменить обработчик нагрузки с помощью самого обработчика. Слишком поздно, поскольку оно уже выполняется. Почему бы просто не вызвать функцию, так как это не имеет большого смысла наличие нескольких обработчиков нагрузки для одной и той же страницы:

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write("foo<br>"); 
    temp_Load(sender, e); 
} 
+0

Могу ли я зарегистрировать обработчик в <% %> тегах в файле .aspx? код в том, что происходит до обработки page_load, поскольку я понимаю –

+0

Нет, вы не можете, код внутри страниц aspx выполняется намного позже, чем Page_Load. Я бы предложил вам посмотреть жизненный цикл страницы ASP.NET: http://msdn.microsoft.com/en-us/library/ms178472.aspx –

Смежные вопросы