0

这是一段在页面没有任何 Ajax 时可以正常工作的代码块

if (sStat > "") {
    str2 = "Dist.aspx?statProducer="; str2 += document.all.txtHiddenStat.value;
    var distWindow;
    if (document.all.ddlWindows.value == "new") {
       distWindow = window.open(str2);
    }
    else {
        distWindow = window.open(str2, "PeriscopeView");
        distWindow.focus();
    }
    return false;

输入收集在此 Ajax TabContainer 内的“advSearch”TabPanel 内的文本框中。搜索按钮在单击时会调用 doValidate() JavaScript 方法。上面的代码存在于该方法中。

<asp:ToolkitScriptManager ID="_toolkitScriptManager1" runat="server" EnablePageMethods="True">
</asp:ToolkitScriptManager>

<form id = "frmSearch" onsubmit="return(doValidate());" method="post" runat="server">
<asp:TabContainer ID="AdvOrBasicSearch" runat="server" ActiveTabIndex="0">
<div id="tabs_header">
    <span id="tab1" class="ajax_tab_active">
    <asp:TabPanel ID="basicSearch" runat="server" HeaderText="Basic Search">.../asp:TabPanel>                

    </span>
    <span id="tab2" class="ajax_tab_active">
    <asp:TabPanel ID="advSearch" runat="server" HeaderText="Advanced Search">...</asp:TabPanel>
    </span>
</div>
</asp:TabContainer>
</form>

现在页面上正在使用 Ajax TabContainers,第二个窗口将打开,但它只是挂起/超时。

编辑

以为我会添加到这篇文章中,因为我一直在逐步检查代码以尝试找出问题所在。在该 JavaScript 块执行后,Visual Studio 将在“return false”代码行之后导航到具有以下标题的页面:

// Name:        MicrosoftAjax.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.60623.0
// FileVersion: 4.1.60623
// (c) 2010 CodePlex Foundation

这是程序挂起的地方。我用了大约 5 分钟的时间逐步完成了此页面上正在执行的代码,并且看起来几乎 7000 多行代码中的每一行都将被调用。有没有办法让 TabContainer 跳过它在这里做的任何事情?

4

0 回答 0