Заполнить элементы управления динамически созданной страницы из файла ASPX? - PullRequest
1 голос
/ 13 декабря 2011

В настоящее время у меня есть один Example.aspx файл ( без кода позади ), и я хочу загрузить его, заполнить элементы управления, получить его выход и сделать что-то с этим (внутри обработчика http).

Что я делаю, это:

// Gets the page and instantiates it?
Type type = BuildManager.GetCompiledType("~/Example.aspx");
Page page = (Page)Activator.CreateInstance(type);

// ProcessRequest of page here?

// Error happens here, the page doesn't have any controls (but there is a label).
((Label)page.FindControl("Label")).Text = "Hello World";

using (StringWriter output = new StringWriter())
{
    // Execute the page and output the result into the string writer.
    HttpContext.Current.Server.Execute(page, output, false);

    // Do something with the output (or save it, email it, etc)
    // ...in this case we render it.
    context.Response.ContentType = "text/html";
    context.Response.Write(output.ToString());
}

Но это не работает, так как экземпляр страницы не имеет никаких элементов управления (необходимо создать дочерние элементы управления?).

Если я добавлю:

page.ProcessRequest(HttpContext.Current);

это работает, но я думаю, что он работает весь жизненный цикл страницы, и это включает в себя отображение страницы в ответ, что я не хочу.

1 Ответ

1 голос
/ 01 апреля 2012

При создании экземпляра страницы с помощью активатора вы можете подключиться к событию init или load, чтобы выполнить дополнительный код при обработке запроса http.Не забывайте, что это все еще управляемая событиями модель!Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...