2012-02-21 50 views
0

我在Asp.Net一個網頁,我附上了一個名爲btnRecordHours_Click在按鈕上單擊Aspx頁面時獲取視圖狀態錯誤?

protected void btnRecordHours_Click(object sender, EventArgs e) 
{ 
    //Some Code 
} 

方法就可以在其OnClick事件按鈕

<asp:Button ID="btnRecordHours" runat="server" Text="<%$ Resources:VolunteerDashboard,btnRecordHours%>" 
CssClass="buttonGreen buttonWidth" OnClick="btnRecordHours_Click" /> 

有了這個可是當我點擊這個按鈕我得到以下錯誤:

Failed to load viewstate.
The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.

它不是能夠在發回Click事件時直接顯示此錯誤OnClick

Hyperlink和其他一些按鈕在這個頁面上正常工作,但這個問題仍然存在一些按鈕。

+0

你是否在頁面頁面或者頁面頁面動態添加了任何控件? – 2012-02-21 17:21:04

+0

不,我們不是動態地在Page_Load或Page_PreRender中添加控件 – 2012-02-21 17:28:23

+0

您是否使用jQuery來更改表單上的任何(甚至是隱藏的字段)值? – 2012-02-21 18:00:41

回答

1

根據您的評論,我認爲您遇到的問題與您有asp:hiddenfields並更改價值的事實有關。

嘗試使用普通的html隱藏字段,並使用Request.Form["nameofhiddenfield"]獲取代碼中的值。

請注意,您需要隱藏字段的名稱,而不是ID。

+0

改變什麼可以是可能的問題與隱藏字段好運...我使用相同在許多其他頁面上,但他們都沒有這種問題......你能詳細說明你到底想說什麼嗎...... – 2012-02-21 19:06:38

+0

當你使用asp:hiddenfield時,它是一個服務器控件。 .NET viewstate包含這些控件的狀態,當這些控件的狀態通過.NET方法更改時,它將此視爲潛在的黑客,併爲您提供錯誤信息。 – 2012-02-21 20:22:24

0

您是否在使用任何更新面板?因爲有時候這些問題會隨着使用而出現,特別是涉及多個更新面板時。

相關問題