2016-02-12 2 views
0

Это структура моего проекта. enter image description hereupdatepanel не может работать при динамической загрузке?

Я хочу, чтобы загрузить QuesEdit.aspx страницу в div в index.aspx с ajax.

Код в index.aspx:

<script type="text/javascript"> 
    function loadDiv(name) { 
     $.ajax({ 
      type: 'GET', 
      async:true, 
      url: '/index/innerAspx/' + name, 
      success: function (data) { 
       $("#mainPage").html(data); 
      } 
     }); 
    } 
</script> 

Событие триггера <li><a href="javascript:void(0)" onclick="loadDiv('test.aspx');">test</a></li>

Я пробовал: (в index.aspx)

<asp:UpdatePanel ID="UpdatePanel3" runat="server"> <ContentTemplate> <div id="mainPage" class="content"> </ContentTemplate> </asp:UpdatePanel>

Я также попытался поставить updatepanel в QuesEdit.aspx содержащее все содержимое как enter image description here

Я хочу обновить только QuesEdit.aspx в div, когда я нажимаю кнопку в QuesEdit.aspx. Тем не менее, похоже, что postback отправляется, и вся страница запрашивает обновление. И я получил сообщение об ошибке: http 404, страница запроса /index/QuesEdit.aspx не может быть найдена?

Почему обновленная панель не работает?

PS: Я хочу, чтобы создать страницу, как enter image description here

По щелкните элементы на боковой панели, я хочу, чтобы загрузить соответствующий asp.net в MainPage

ответ

0

Это странный подход - и один, с которым у вас, скорее всего, будет гораздо больше проблем. Панель обновления работает, но вы загрузили содержимое всей страницы внутри нее, которую вы отправляете обратно. Я не уверен, почему вам нужно загружать страницу внутри страницы, но похоже, что вы должны использовать элемент управления ascx для содержимого QuesEdit и включать свою панель обновлений. Затем вы можете ссылаться на этот элемент управления с обеих страниц, и он будет работать.

Причина, по которой вы получаете 404, заключается в том, что вы загружаете СОДЕРЖАНИЕ страницы QuesEdit.aspx внутри страницы в другой каталог. Поскольку вы используете относительные пути, вы нарушаете ссылочную иерархию, делая это.

Edit:

Пример:

QuesEdit.ascx управления - здесь поставить панель обновления и все функциональные возможности, которые у вас есть в вашей текущей странице QuesEdit.aspx.

Страница QuesEdit.aspx - здесь, загрузите элемент управления QuesEdit.ascx.

index.aspx страница - здесь, загрузите элемент управления QuesEdit.ascx. Если вам нужно, вы можете переключать его отображение на основе пользовательского ввода.

+0

Почему мне нужно загрузить страницу внутри страницы, как описано выше. (Я повторно редактирую вопрос). Есть ли лучшее решение для достижения этой функции? – oleotiger