2012-08-28 41 views
0

我覺得這是一個相當簡單的解決,因爲我以前remeber有這個問題,但不記得是什麼我做這件事......asp.net按鈕不會激發他們的onclick事件

我決定做掉了特定的asp.net頁面,並將其控件集成到另一個現有頁面(幾個文本框和2個按鈕),複製並粘貼它們並添加代碼隱藏。

由於這樣做我修改後的頁面上沒有任何按鈕觸發他們的OnClick事件,我試圖添加一個新的,但也不會觸發。

這些按鈕的實際代碼隱藏失敗簡單 - 保存記錄,response.redirect,這種事情。

任何想法?

感謝

按鈕標記

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Save" 
       Width="91px" /> 

代碼隱藏

protected void Button1_Click(object sender, EventArgs e) 
    { 

     helper hl = new helper(); 
     hl.UpdateComplaint(txtCaseNo.Text, Forename.Text, Surname.Text, txtActionProgress.Text,    
Response.Redirect("Complaint.aspx"); 
    } 
+0

你可以發佈按鈕的標記和它們綁定的onclick事件嗎? – dtsg

+0

這裏介紹了最常見的原因 - http://support.microsoft。com/kb/814745(AutoEventWireup和手動配置事件處理程序) – dash

+0

謝謝,我將通讀 – DarkW1nter

回答

0

以下是一些您可能會嘗試的操作。沒有保證,但也許是在正確的方向推動:)

打開有問題的Visual Studio和ASP.NET頁面。在設計器中,單擊控件,然後轉到屬性框,然後查找OnClick事件。如果它是空白的,請單擊該框並從可用的下拉列表中選擇您希望附加的事件處理程序。如果列表中沒有事件,只需雙擊以查看Visual Studio是否會爲您創建一個默認事件處理程序,然後將以前的onClick處理程序中的代碼粘貼到該新的方法中。

希望有所幫助。

編輯每後來意見,建議,一個完整的從不同的ASP.NET頁面代碼隱藏副本和粘貼可能已經創建了一個局部類聲明不匹配標記的的CodeFile或繼承指令的新頁面,這可能會導致各種奇怪的行爲。

+0

當我雙擊,點擊這個控件,它會在控件點擊事件中打開代碼隱藏,並帶有正確的代碼 - 它似乎不會觸發 – DarkW1nter

+1

您是否將整個代碼隱藏複製並粘貼到新文件中?如果是這樣,那麼您的頁面後臺可能會聲明一個不同於標記中的「繼承」聲明中的部分類名稱。這可以解釋各種奇怪的行爲。 –

+0

我認爲你在那裏。我撤消了所有更改,以便回到完全正常運行的Web應用程序,我將創建控件而不是複製/粘貼這次!感謝大家的意見 – DarkW1nter

0

因爲你在後面的代碼專門OnClick事件

定義您的代理,你必須複製該代碼

Button.Click += ..... 

可以在ASPX視圖或您的代碼背後的委託關聯,對於你的情況,你已經在代碼所做的後面,你不要複製

驗證您的aspx你的CodeFile如果你讓複製粘貼

+0

在這種情況下,事件委託是在'* .aspx'標記中定義的。你的解決方案是當你在後面的代碼中創建一個按鈕,或者如果你在後面的代碼中手動綁定事件。 –

+0

不,這不是我的答案,因爲Theresa有問題,我告訴你有兩個解決方案:1在aspx視圖上定義Onclick,或者在頁面的Init事件中定義Onclick。 –

+0

在她的情況下,如果她已經複製了視圖副本,所以Onclick在副本中,所以她已經在後面的代碼中定義了OnClick - >因此,如果她複製過去的視圖,這是不夠的,因爲它可能在代碼後面定義 –

0

是不是OnClick="Button1_Click"區分大小寫?你有沒有試過在事件處理程序中設置一個斷點,看它是否觸發?它可以是一個Page_Load問題?你做事沒有

if (!Page.IsPostBack)