Здравствуйте!
Есть страница, на которой размещен DataGrid c TemplateColumn'и.
При клике на LinkButton, размещенным в ItemTemplate ИНОГДА возникает ошибка:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 17.04.2006 15:19:27
Event time (UTC): 17.04.2006 11:19:27
Event ID: fa4a8cf19ded43ee9ebeed85b31bd68a
Event sequence: 222
Event occurrence: 1
Event detail code: 0
Exception information:
Exception type: ArgumentException
Exception message: 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.
Request information:
Request URL: http://www.domain.com/CI/post/CS.aspx?regc=64&pid=187
Request path: /CI/post/CS.aspx
User host address: XXX.XXX.XXX.XXX
User: XXX\xxx
Is authenticated: True
Authentication Type: Basic
Thread account name: NT AUTHORITY\SYSTEM
Thread information:
Thread ID: 5
Thread account name: NT AUTHORITY\SYSTEM
Is impersonating: False
Stack trace: at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)
at System.Web.UI.WebControls.DropDownList.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Ошибка возникает в тот момент, когда страница еще не до конца догрузилась, а пользователь нажимает на LinkButton.
Если для страницы выставить EnableEventValidation = false, то ошибка не возникает.
Хочется включить EnableEventValidation, выяснив виновного и подкорректирован код страницы.
Заранее благодарен.
Здравствуйте, Морозов Сергей, Вы писали:
Аналогичная проблема, но ситуация приводящая к ней еще не выявлена. Для диагностики написал дочерний класс от DropDownList
public class DropDownListVE : DropDownList
{
protected override bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
string[] values = postCollection.GetValues(postDataKey);
try
{
return base.LoadPostData(postDataKey, postCollection);
}
catch (System.ArgumentException ae)
{
string sValidationError = String.Format("ValidateEvent uniqueId:{0} argument:{1}", postDataKey, values[0]);
throw new System.ArgumentException(sValidationError, ae);
}
catch (System.Web.HttpUnhandledException hue)
{
string sValidationError = String.Format("ValidateEvent uniqueId:{0} argument:{1}", postDataKey, values[0]);
throw new System.ArgumentException(sValidationError, hue);
}
}
}
и заменил все дропдауны на него. жду результатов....