1

我有與AJAX ModalPopupExtender控制的麻煩。我所試圖做的是點擊一個按鈕,觸發使用雅虎API與按鈕click事件的郵政編碼查詢,在ShowModalDialog的框的ASP面板顯示這個,然後關閉對話框。我還需要在頁面上使用單獨的按鈕來使用完全獨立於此的表單提交信息。ASP.NET AJAX ModalPopupExtender - 開放與錯鍵

我把目標定按鈕,如下所示:

<asp:Button ID="btnStockist" runat="server" BackColor="#2C3473" OnClick="btnStockist_Click" /> 

的modalpopup如下:

<ajax:ModalPopupExtender ID="mpeStockist" runat="server" okcontrolid="btnOkay" targetcontrolid="btnStockist" popupcontrolid="pnlDisplay" 
          popupdraghandlecontrolid="PopupHeader" drag="true" backgroundcssclass="ModalPopupBG" ></ajax:ModalPopupExtender> 

什麼是實際發生的是,點擊目標按鈕時,彈出打開,但該事件不會觸發(不會執行郵政編碼查找)。然而,點擊同一頁面上的獨立,不相關的按鈕不會觸發事件,並查找完美的作品。我可以像平常一樣關閉對話框。我曾嘗試用CSS作爲一個快速的解決方法隱藏目標按鈕,但問題是,頁面上的任何其他按鈕似乎不管觸發查找方法和modalpopup什麼他們的單擊事件被編程做的,我需要他們的工作分別。

在情況下,它有什麼用途,面板的代碼是在這裏:

<asp:Panel ID="pnlDisplay" style="display:none" runat="server"> 
       <div class="PopupContainer"> 
        <div class="PopupBody">       
         <div align="center">Local Suppliers</div> 
         <br /><br /> 
         <asp:label ID="lblError" runat="server"></asp:label> 
         <asp:UpdatePanel ID="upAlternatives" runat="server" UpdateMode="Conditional"> 
          <ContentTemplate> 
          <asp:DataList ID="dlStockist_Select" runat="server"> 
           <HeaderTemplate> 
            <table cellpadding="5" width="680"> 
             <tr> 
              <td>Name</td> 
              <td>Address</td> 
              <td>Town/City</td> 
              <td>Miles (Approx)</td>                   
             </tr> 
           </HeaderTemplate> 
           <ItemTemplate> 
            <tr> 
             <td><%# DataBinder.Eval(Container.DataItem, "CNAM") %></td> 
             <td><%# DataBinder.Eval(Container.DataItem, "CADD1") %></td> 
             <td><%# DataBinder.Eval(Container.DataItem, "CADD3")%></td>         
             <td align="center"><%# DataBinder.Eval(Container.DataItem, "Distance")%></td>       
            </tr> 
           </ItemTemplate> 
           <FooterTemplate> 
            </table>    
           </FooterTemplate> 
          </asp:DataList> 
          </ContentTemplate> 
         </asp:UpdatePanel> 
         <asp:LinkButton ID="btnOkay" runat="server" visible="true" Text="Close" CommandName="Update" BorderColor="#FFFFFF" BackColor="#000000" 
          BorderWidth="3" BorderStyle="Double" ForeColor="White" Font-Size="13pt" style="cursor: pointer; padding: 1px 15px 1px 15px; 
          margin-top: 10px;" Font-Underline="False"></asp:LinkButton> 
        </div> 
       </div> 
      </asp:Panel> 

在此先感謝您的幫助

回答

1

再添加一個按鈕,按以下

<asp:Button Text="targetbutton" ID="tgtbtn" runat="server" Style="display: none" /> 

集ID這個按鈕在modulpopup的的TargetControlID的(因爲它不能爲null)

和CL btnStockist

的ICK事件通過代碼

protected void btnStockist_Click(object sender, EventArgs e) 
{ 
    mpeStockist.Show(); 
} 
+0

完美的打開你的modulapopup,正是我需要的。謝謝!不知道爲什麼它的工作原理(與modalpopup?個異數位),但解決它。 – odinel 2011-12-29 10:07:41

+0

@odinel你歡迎,只是提到這個更多的信息http://www.asp.net/web-forms/tutorials/ajax-control-toolkit/modalpopup/launching-a-modal-popup-window-from-server- code-cs – 2011-12-29 11:17:24

+0

該問題尚未解決,它不適用於Mozilla瀏覽器。但可以使用谷歌瀏覽器。 – Lijo 2014-08-17 16:03:19