2012-03-12 146 views
1

我有一個包含在更新面板內的gridview。我使用gridvied中的按鈕編輯gridview中的記錄,它會更新面板回發(__doPostBack),然後更新GridView的數據集並嘗試使用新的數據源刷新griview,但出現以下錯誤。在更新面板中刷新GridView

我重新綁定我的GridView控件如下,

gvwSearchResult.DataSource = dsP1.prSearchItem; 
gvwSearchResult.DataBind(); 
UpdatePanel1.Update(); 

Uncaught Sys.WebForms.PageRequestManagerServerErrorException: 
Sys.WebForms.PageRequestManagerServerErrorException: 
Invalid postback or callback argument. 
Event validation is enabled using <pages enableEventValidation="true"/> in configuration or 
<%@ Page EnableEventValidation="true" %> in a page. 
For security purposes, 
this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. 
If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or 
callback data for validation. 
Sys.WebForms.PageRequestManager._endPostBackScriptResource.axd:307 
Sys.WebForms.PageRequestManager._parseDeltaScriptResource.axd:749 
Sys.WebForms.PageRequestManager._onFormSubmitCompletedScriptResource.axd:584 
(anonymous function)ScriptResource.axd:22 
(anonymous function)ScriptResource.axd:1519 
Sys.Net.WebRequest.completedScriptResource.axd:2924 
_onReadyStateChange 

任何想法?

+0

編輯按鈕是自動生成還是在模板中? – mslliviu 2012-03-12 07:41:24

+0

這是一個模板字段 – Roshe 2012-03-12 07:45:23

回答

1

你在pageLoad裏綁定了你的gridview嗎?如果是,那麼請檢查

if(!Page.IsPostBack) 
{ 
    //Bind your gridview. 
} 

您的控件可能在數據綁定之前重新生成。如果您在刪除操作之前綁定了控件,則會發生這種情況。在按鈕事件下也檢查pageLoad &下的代碼。只有數據綁定在最後的&之間。

+0

我將其綁定在我的更新面板加載中, protected void UpdatePanel1_Load(object sender,EventArgs e) {} – Roshe 2012-03-12 07:46:22

+0

檢查我的更新回覆。 – 2012-03-12 07:53:33

1

此錯誤是由於EventValidation失敗而導致的。下面的線程顯示瞭如何調試這些異常。

Conditional update panel

+0

是的,我更新了更新面板,我的網格在更新面板中。 – Roshe 2012-03-12 10:14:26

0

確保您的按鈕UseSubmitBehaviour屬性設置爲false。它應該呈現爲輸入類型=「按鈕」而不是「提交」。不知道爲什麼,但對我來說,這個變化工作..

0

我設置EnableEventValidation =「false」然後它的工作。但不知道正確的做法