0

私は最も奇妙な行動をとります。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 関数にブレークポイントを設定しましたが、呼び出されません。

何か案は?

4

1 に答える 1

0

わかった。今、私は物事を理解しました。私はとてもずさんでした。Drew は 1 つのケースの解決策を提供してくれましたが、それでも問題の説明にはなりませんでした。全体のソリューションは異なります。問題は、この男がここで提供して使用した提案を使用しOnClientClick="aspnetForm.target ='_blank';"ましたが、ボディオンロードに追加するよう提案された修正を実装していませんでした。今はすべて正常に動作します。

どうもありがとうドリュー。

于 2012-05-12T11:49:11.193 に答える