Можете ли вы асинхронно изменить страницу содержимого ContentPlaceHolder главной страницы в.NET?

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

Предположительно, главная страница - это на самом деле просто элемент управления для страницы содержимого, а не "мастер" страницы содержимого. Если бы я хотел перейти с одной страницы контента на другую страницу контента с той же главной страницей, я бы просто сказал

Response.Redirect("PageB.aspx");

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

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

Возможно ли это, если да, то как?

2 ответа

Решение

Я не знаю, если вы можете между страницами (.aspx), но это определенно можно сделать с помощью UserControls.

Страницы ASP.Net имеют свои собственные URL-адреса, поэтому вы пытаетесь переходить с одного URL-адреса на другой без обратной передачи, это просто не то, как это должно работать.


Использование пользовательских элементов управления (.ascx):

Создайте страницу, которая использует MasterPage и используйте что-то подобное в контенте

<ajax:UpdatePanel ...>

    <ContentTemplate>

        <asp:PlaceHolder ...>

    </ContentTemplate>

</ajax:UpdatePanel>

Найдите UpdatePanel и настройте его параметры, чтобы сделать то, что вы хотите, а затем узнайте, как поменять пользовательские элементы управления в заполнителях.

Нет, вы не можете этого сделать, потому что главная страница на самом деле является элементом управления, отображаемым на конкретной странице aspx, а не фактически содержит страницу aspx, поскольку она обманчиво выглядит программно и в режиме конструктора.

Больше информации:

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

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

Другие вопросы по тегам