2012-05-11 46 views
0

我有最奇特的行爲。我正在使用ajaxcontrol工具包來顯示具有窗體的模式彈出窗口。這個彈出窗口是從一個包含asp:linkbutton的網頁激活的(其上有OnClientClick="aspnetForm.target ='_blank';",我不這麼認爲,但也許這是相關的)。 現在,如果我點擊鏈接,然後另一個選項卡打開與新的頁面。當我回到原始選項卡並激活這個模式彈出窗口時,如果我點擊取消按鈕(我有那裏),那麼回調函數甚至不會被調用(這個回調只是假設隱藏彈出窗口),我的當前選項卡被重定向到asp:linkbutton所指的同一頁面。一個按鈕重定向到另一個頁面,而不是調用回調函數

某些代碼:

我有一個包含下面的ASP的頁面:LinkBut​​ton的:

<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函數中放置了一個斷點,但它從未被調用過。

任何想法?

+1

你有沒有試過在你的Modal Popup的'CancelControlID'Attribute中指定你的Cancel按鈕? – Drew

+0

男人,這似乎解決了這個很奇怪的問題。你不知道我爲此掙扎了多少時間。非常感謝。你碰巧知道如何將它標記爲解決方案? – dsb

回答

0

好的。現在我想通了。我很sl。。 儘管德魯向我提供了一種解決方案,但仍未解釋問題。整個解決方案是不同的。 事情是,我用這個傢伙提供的建議here和使用OnClientClick="aspnetForm.target ='_blank';",但我沒有實現他建議添加到身體onload(那裏)的修復。現在一切正常。

非常感謝德魯。

相關問題