PDA

View Full Version : خطای EventValidation



Alireza_Salehi
چهارشنبه 27 دی 1385, 11:58 صبح
من یک GridView سفارشی درست کردم(با استفاده از TemplateField) که در قسمتی از آن یک Imagebutton وجود دارد زمانی که بر روی این دکمه کلیک می شود پیام خطای زیر را می دهد



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.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: 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.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:

[ArgumentException: 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.]
System.Web.UI.ClientScriptManager.ValidateEvent(St ring uniqueId, String argument) +366
System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +83
System.Web.UI.WebControls.ImageButton.RaisePostBac kEvent(String eventArgument) +52
System.Web.UI.WebControls.ImageButton.System.Web.U I.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +31
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +32
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +72
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3839
(البته در قسمت Page_Load از متد DataBind استفاده کردم
زمانی که به صورت زیر استفاده می کنم خطا نمی دهد که البته در این صورت Paging از کار می افتد!)


If Not Page.IsPostBack Then
...
gvSearch.DataBind()
...
End If
زمانی که از LinkButton استفاده می کنم این خطا را نمی دهد ، با Button هم همین خطا را می دهد!

در صورتی که EventValidation صفحه را غیر فعال نکنیم نحوه استفاده از ClientScriptManager.RegisterForEventValidation چگونه است؟



...
<asp:ImageButton runat="Server" ID="..." ImageUrl="~/..."
CommandName="Buy" CommandArgument='<%#EVAL("ID") %>'/>
...

Alireza_Salehi
چهارشنبه 27 دی 1385, 16:49 عصر
در واقع نحوه کار با ClientScriptManager.RegisterForEventValidation چطوریه؟

Alireza_Salehi
پنج شنبه 28 دی 1385, 12:51 عصر
جواب این موضوع که معلوم نشد!

در واقع نحوه کار با ClientScriptManager.RegisterForEventValidation چطوریه؟
ولی مشکلم حل شد (راه حلش در این پست (http://www.barnamenevis.org/forum/showthread.php?t=59560))

با تشکر

bardia goharbin
شنبه 21 بهمن 1385, 21:32 عصر
منم با مشکل شما مواجه شدم راه حلش چیه؟

palang sorati
چهارشنبه 14 اردیبهشت 1390, 06:23 صبح
من هم همین مشکل را داشتم و لینک شما را هم مطالعه کردم . مشکلم فقط با قرار دادن این کد توی page load فرم حل شد :

if


(!Page.IsPostBack)

{

GridView1.DataBind();

}