【问题标题】:updatepanel cannot work when loading dynamically?动态加载时更新面板无法工作?
【发布时间】:2016-05-23 16:34:12
【问题描述】:

这是我项目的结构。

我想将QuesEdit.aspx 页面加载到index.aspx 中的divajax

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>

触发事件为&lt;li&gt;&lt;a href="javascript:void(0)" onclick="loadDiv('test.aspx');"&gt;test&lt;/a&gt;&lt;/li&gt;

我试过了:(在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

为什么更新面板不起作用?

PS:我想生成一个类似的页面

通过点击侧边栏的项目,我想在主页加载对应的asp.net

【问题讨论】:

    标签: javascript jquery html asp.net updatepanel


    【解决方案1】:

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

    您收到 404 的原因是因为您将 QuesEdit.aspx 页面的内容加载到不同目录中的页面内。由于您使用的是相对路径,因此您正在打破引用层次结构。

    编辑:

    例子:

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

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

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

    【讨论】:

    • 上面解释了为什么我需要在页面内加载页面。(我重新编辑了问题)。有没有更好的解决方案来实现这个功能?
    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多