我有最奇怪的行为。我正在使用 ajaxcontrol 工具包来显示模态弹出窗口,它上面有一个表单。这个弹出窗口是从包含asp:linkbutton
它的网页激活的(OnClientClick="aspnetForm.target ='_blank';"
在它上面,我不这么认为,但也许这是相关的)。现在,如果我单击链接,则会打开另一个选项卡,其中包含新页面。当我回到原始选项卡并激活此模式弹出窗口时,如果我单击取消按钮(我在那里),则甚至不会调用回调函数(此回调只是假设隐藏弹出窗口)和我当前的选项卡被重定向到 asp:linkbutton 所指的同一页面。
一些代码:
我有一个包含以下 asp:linkbutton 的页面:
<asp:LinkButton ID="lbToBuy" runat="server" CssClass="ItemURLStyle" CausesValidation="false"
OnClientClick="aspnetForm.target ='_blank';">buy it>></asp:LinkButton>
这是来自用户控件的一行,我将其动态添加到某些搜索结果页面。后面的代码是:
lbToBuy.PostBackUrl = "~/pages/PassagePage.aspx?i=" + itemInfo.ItemID.ToString();
现在,我在原始页面中添加了另一个用户控件,它是我网站中项目的搜索栏:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:LinkButton ID="lbAdvancedSearch" runat="server" Style="color: #f6f7ff; font-family: Arial;
font-size: 12px; text-decoration: underline;">Search options</asp:LinkButton>
<asp:ModalPopupExtender runat="server" ID="AdvSearchPopupModal" TargetControlID="lbAdvancedSearch"
PopupControlID="pnlAdvSearch" BackgroundCssClass="modalBackground" DropShadow="false"
RepositionMode="RepositionOnWindowScroll">
</asp:ModalPopupExtender>
<asp:Panel ID="pnlAdvSearch" runat="server" CssClass="modalPopup" Style="display: none;">
<asp:Panel runat="server" ID="Panel3" CssClass="modalHeader">
Advanced search
</asp:Panel>
<div id="SearchFormWrap">
<div id="SearchFormBox">
<br />
<table cellspacing="5">
<colgroup>
<col width="100px;" align="left" />
<col width="300px;" />
</colgroup>
<tbody>
SOME UNIMPORTANT SEARCH CRITERION HERE
</tbody>
</table>
<div style="width: 280px; margin: auto; padding-bottom: 15px;">
<br />
<div style="width: 210px; height: 30px; margin: auto;">
<asp:Button ID="btnQuitAdvSearch" runat="server" CssClass="myButtonShape" Style="font-size: 14px;
float: left; height: 25px; width: 100px;" OnClick="btnQuitAdvSearch_Click" CausesValidation="false"
Text="Cancel" />
<div style="width: 3px; height: 25px; float: left;">
</div>
<asp:Button ID="btnAdvSearch" runat="server" class="myButtonShape" Style="font-size: 14px;
float: left; height: 25px; width: 100px;" OnClick="btnAdvSearch_Click" OnClientClick="return btnSearch_OnClientClick();"
CausesValidation="true" Text="Search" />
</div>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
代码隐藏:
protected void btnQuitAdvSearch_Click(object sender, EventArgs e)
{
this.AdvSearchPopupModal.Hide();
}
现在,当我按下页面中的链接时,会按预期打开另一个带有定向链接的选项卡。当我回到原始页面并按下高级搜索按钮时,我会看到这个显示搜索条件的模式弹出窗口。如果我按下“搜索”按钮,一切都会按预期进行并形成新的搜索,但如果我按下“取消”按钮,页面将重定向到我单击的最后一个链接(在当前选项卡中,即替换原始页)。我在 btnQuitAdvSearch_Click 函数处设置了一个断点,但它从未被调用过。
有任何想法吗?