私は最も奇妙な行動をとります。ajaxcontrol ツールキットを使用して、フォームのあるモーダル ポップアップ ウィンドウを表示しています。このポップアップウィンドウは、それに含まれるWebページからアクティブ化されます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();
これで、元のページに別のユーザー コントロールが追加されました。これは、私の Web サイトからのアイテムの検索バーです。
<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 関数にブレークポイントを設定しましたが、呼び出されません。
何か案は?