2012-05-10 47 views
0

嘿所以我對asp.net來說很新,我正在嘗試創建一個網站/表單,它接收一堆數據並對其進行處理。我有一個提交按鈕來調用submitButton_Click方法,但我也有一個模式彈出窗口,它提供了一個「請稍候」的更新面板,同時我在服務器端對同一個事件進行了處理。問題是,它似乎像modalpopup工作正常,但我surpressing submitButton_Click方法調用。我該怎麼辦?ModalPopupExtender跳過OnClick

另外,如果possiable有U​​pdatePanel中打開時調用默認的方法是什麼?我想將面板儘管我最後一次更新它彈出相同每次。

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click" 
      CssClass="buttons"/> 

<asp:ModalPopupExtender 
     ID="modalProgress" 
     runat="server" 
     OkControlID="btnOkay" 
     TargetControlID="submitButton" 
     PopupControlID="progessPanel" 
     BackgroundCssClass="modalBackground"> 

</asp:ModalPopupExtender> 

回答

2

它不旁路 click事件;它只是改變了客戶端onclick返回false,這否定了回發。老實說,我一直覺得這是一個痛苦的屁股。 Forunately,有一種變通方法:

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click"    CssClass="buttons"/> 
<!-- hidden button to satisfy the extender --> 
<asp:Button ID="hiddenButton" runat="server" style="display:hidden" /> 

<asp:ModalPopupExtender 
     ID="modalProgress" 
     runat="server" 
     OkControlID="btnOkay" 
     TargetControlID="hiddenButton" 
     PopupControlID="progessPanel" 
     BackgroundCssClass="modalBackground"> 
</asp:ModalPopupExtender> 

通過添加一個隱藏的按鈕,你會滿足擴展的要求,你可以在代碼隱藏在提交按鈕的單擊事件打開對話框:

protected void submitButton_Click(object sender, EventArgs e) 
{ 
    //display the modal dialog 
    modalProgress.Show(); 
} 
+0

我以前見過這種方法,但我不喜歡有一個按鈕只是爲了「滿足」PopUpControlExtender的東西。我發佈了一個可以工作的替代方案* - 我沒有測試它。 – Icarus

+0

@Icarus:是的,我不喜歡它的。不幸的是,有時你需要在顯示擴展器之前執行邏輯。我一直在使用'RadToolTip'一段時間,主要是出於這個原因。 –

+0

+1我的代碼沒有工作。 ModalPopUpExtender需要指定TargetControlID。 – Icarus