2010-03-19 65 views
0

我有一個帶有兩個按鈕的aspx頁面,其中一個按鈕具有應點擊時應運行的函數的OnClick屬性。當點擊另一個按鈕時,if語句會檢查頁面是否是回發,如果是,則運行一些需要在點擊該按鈕時運行的語句。該回發按鈕正常工作。然而,另一個按鈕,當它被點擊時,它應該調用的函數永遠不會執行,而if(Page.IsPostBack)中的語句會被執行。我能做些什麼來解決這個問題?有沒有辦法讓調用函數的按鈕不做回發?即使當按鈕屬性OnClick設置爲該功能時,按鈕點擊仍不會調用功能

+2

你可以發佈代碼嗎?無論是在aspx頁面還是後面的代碼。 – ChrisF 2010-03-19 20:02:39

+0

你想要異步回發嗎? (AJAX) – 2010-03-19 20:05:03

+0

我不想要一個按鈕點擊來執行回發,我只是希望在按鈕的OnClick屬性中指定的函數得到執行。 – adhanlon 2010-03-19 20:06:45

回答

1

[剪斷 - 不是問題的一部分]

編輯:下面是一個使用一個UpdatePanel在asych方式調用按鈕的OnClick函數的一個例子:

的.aspx

<form id="form1" runat="server"> 
    <asp:ScriptManager runat="server"></asp:ScriptManager> 
    <asp:UpdatePanel ID="upTest" runat="server"> 
     <ContentTemplate> 
      <asp:Button ID="btnTest" Text="Test" OnClick="Delete_Click" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

.aspx.cs

protected void Delete_Click(object sender, EventArgs e) 
{ 
    // Whatever you want to do. 
} 

編輯2:這裏有一個答案,我最近給該figures out what control has caused a postback

+0

OnClick屬性設置爲「Delete_Click」,並且我有一個方法protected void Delete_Click()aspx.cs文件 – adhanlon 2010-03-19 20:09:58

+0

「OnClick」是一個服務器端函數,預計將作爲回發的一部分進行調用。如果你不想要一個完整的回發,那麼你應該看一個'UpdatePanel'進行異步調用。 – CAbbott 2010-03-19 20:13:02

+0

我想出了我的問題。 Page_Load函數在我的Delete_Click函數之前被調用。並且在Page_Load函數中,我必須有if(Page.IsPostback){//做東西然後重定向頁面},這就是爲什麼Delete_Click沒有被調用。我可以使用對象發件人來確定哪個按鈕導致回發? – adhanlon 2010-03-19 20:35:17