как обновить контент страницы с главной страницы? - PullRequest
2 голосов
/ 12 января 2011

Ссылки меню находятся на главной странице, и соответствующие события щелчка записываются на самой главной странице.У меня есть только одна страница контента.Данные сохраняются в html-форме в БД, и они будут отображаться на странице содержимого при соответствующих щелчках по менюНо проблема в том, что загрузка страницы контента происходит до главной страницы, поэтому страница контента пуста.Здесь мой код -

public void GetLinkPage(Int32 linkId)//master page
{
    LinkContentEnitity linkContent = new LinkContentEnitity();
    linkContent = PageController.GetPageContent(linkId);              
}

linkContent содержит эту страницу контента в форме HTML.Как я могу напечатать это значение на странице содержимого?

Ответы [ 2 ]

3 голосов
/ 12 января 2011

Хотя это не совсем понятно, похоже, вы говорите, что вашей контентной странице нужна информация в своем собственном событии Load, которое генерируется в событии Page_Load главной страницы?

Так что либо переместите код, который вызывает GetPageLink() на PreRender на вашей странице содержимого, либо добавьте обработчик событий в ContentPage для Page_LoadComplete() (который срабатывает после загрузки всех дочерних элементов управления на странице) и вызовите GetPageLink() и сделайте рендеринг оттуда, например на странице содержания:

protected override void OnInit(EventArgs e)
{
    Page.LoadComplete += new EventHandler(Page_LoadComplete);
}
protected void Page_LoadComplete(object sender, EventArgs e) {
   // do stuff here, instead of OnLoad/Page_Load event
}

Кстати, это полезная ссылка для порядка событий. Проблема, с которой вы сталкиваетесь, очень легко решить при работе с вложенными элементами управления (master / content, usercontrols и т. Д.), Это помогает хорошо понять порядок событий.

http://msdn.microsoft.com/en-us/library/dct97kc3.aspx

1 голос
/ 12 января 2011

Один из способов сделать это может быть следующим ... На своей странице контента добавьте публичный метод, который выполняет ту работу, которая вам нужна. На главной странице приведите this.Page к своему классу страницы и вызовите этот метод.

...