これは、ページに 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 がページで使用されるようになったので、2 番目のウィンドウが開きますが、ハングアップするかタイムアウトになります。
編集
コードをステップ実行して何が問題なのかを調べているので、この投稿に追加すると思いました。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 にスキップさせる方法はありますか?