我想将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
中,其中包含
当我点击QuesEdit.aspx
中的按钮时,我想仅更新div
中的QuesEdit.aspx
。但是,似乎发送了回发并且整个页面都要求刷新。我收到错误消息:http 404
,无法找到请求页面/index/QuesEdit.aspx
?
为什么updatepanel没有工作?
这样的网页点击侧边栏上的项目,我想在主页中加载相应的asp.net
答案 0 :(得分:0)
这是一种奇怪的方法 - 你可能会遇到更多问题。您的更新面板正常运行,但您已在其中加载了您要回发的整个页面的内容。我不确定为什么你需要在页面内加载页面,但听起来你应该使用ascx控件来处理QuesEdit内容 - 并包括你的更新面板。然后,您可以从两个页面引用该控件并且它可以正常工作。
您获取404的原因是您在另一个目录中的页面内加载了QuesEdit.aspx页面的CONTENT。由于您使用了相对路径,因此您可以通过执行此操作来破坏参照层次结构。
编辑:
示例:
QuesEdit.ascx控件 - 在这里放置您的更新面板以及当前QuesEdit.aspx页面中的所有功能。
QuesEdit.aspx页面 - 在这里,加载你的QuesEdit.ascx控件。
index.aspx页面 - 在这里,加载您的QuesEdit.ascx控件。如果需要,您可以根据用户输入切换显示。