0

我的网站是用 ASP.NET 用 C# 编写的,所有正在加载的页面都是 .aspx 页面。

我正在使用一个按钮

<input type="button" onclick="FindBuilding()">

触发一个javascript函数

function FindBuilding() {
$('#BuildingPopup).load('./BuildingPopup.aspx?lid=xxx');
$('#BuildingPopup).dialog('open');
}

打开我创建的模态对话框

$("#BuildingPopup").dialog({
    modal: false,
    autoOpen: false,
    position: "center",
    resizable: false,
    height: 671,
    width: 1042,
    stack: true
});

对话框是在$(document).ready函数内部创建的

问题:

在对话框加载 BuildingPopup.aspx 后,父页面会加载相同的页面——每当我尝试在模式对话框中加载任何页面时都会发生这种情况,无论内容如何。BuildingPopup.aspx 只是一个示例。

我试图解决的问题:

我尝试先创建对话框,然后使用open按钮加载页面。我也尝试过使用iframewhich可以工作,但页面无法很好地显示,这是一个麻烦/糟糕的修复。

一些线索?

  • 某些页面在页面加载期间通过 AJAX 调用 Web 服务
  • 该问题在有和没有更新面板的页面上仍然存在
  • 某些页面在页面加载期间正在评估代码块

更新

我发现当父页面上的更新面板更新时会出现问题。

<asp:UpdatePanel ID="updatepanel1" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">

<asp:Timer>在代码隐藏中执行 OnTick() 方法(以更新面板)时会发生这种情况。

4

2 回答 2

0

嗯,我遇到了同样的问题,我通过对任何需要回调的代码使用更新面板来解决它,不知道为什么这不起作用......

于 2013-05-17T16:16:57.750 回答
0

Tuns out 我只需要更好地表达我的问题——我终于找到了和我有同样问题的其他人。

在这里找到答案:jQuery.load()-ed 内容中的 UpdatePanel 在回发时脱离页面

简而言之,问题在于使用 .load 会从加载的页面中提取额外的标签,这会破坏父页面上的 HTML。<head> <title> etc被拉入父页面并导致问题。

要解决这个问题,只需要指定我想从加载的页面中提取的内容,.load(/loadedpage.aspx #content)而不是拉出整个页面。

于 2013-05-30T14:28:11.280 回答