动态加载时,updatepanel无法正常工作?

时间:2016-02-12 13:40:51

标签: javascript jquery html asp.net updatepanel

这是我项目的结构。enter image description here

我想将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。但是,似乎发送了回发并且整个页面都要求刷新。我收到错误消息:http 404,无法找到请求页面/index/QuesEdit.aspx

为什么updatepanel没有工作?

PS:我想生成像enter image description here

这样的网页

点击侧边栏上的项目,我想在主页中加载相应的asp.net

1 个答案:

答案 0 :(得分:0)

这是一种奇怪的方法 - 你可能会遇到更多问题。您的更新面板正常运行,但您已在其中加载了您要回发的整个页面的内容。我不确定为什么你需要在页面内加载页面,但听起来你应该使用ascx控件来处理QuesEdit内容 - 并包括你的更新面板。然后,您可以从两个页面引用该控件并且它可以正常工作。

您获取404的原因是您在另一个目录中的页面内加载了QuesEdit.aspx页面的CONTENT。由于您使用了相对路径,因此您可以通过执行此操作来破坏参照层次结构。

编辑:

示例:

QuesEdit.ascx控件 - 在这里放置您的更新面板以及当前QuesEdit.aspx页面中的所有功能。

QuesEdit.aspx页面 - 在这里,加载你的QuesEdit.ascx控件。

index.aspx页面 - 在这里,加载您的QuesEdit.ascx控件。如果需要,您可以根据用户输入切换显示。