Ajax
Estou usando em uma pagina do meu site o componente "CalendarExtender". Este é um componente da coleção "AjaxToolKit" que é muito conhecida. Quando uso esse componente, obrigariamente, tenho que colocar um "ScriptManager" na pagina. Até ai tudo bem, funciona belezinha porém quando está abrindo esta pagina, se ela nao estiver totalmente carregada, e eu clicar em um botao da tela parcialmente renderizada, aparece o seguinte erro:
Invalid postback or callback argument. Event validation is enabled using 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.
Se eu espero a pagina carregar todinha antes de clicar no botao, o erro nao acontece.
Segue abaixo o trace do erro:
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.TextBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.WebControls.TextBox.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)
Já vi na internet uma solucao que seria colocar a propriendade "EnableEventValidation" da pagina igual a False mas nao sei em que vai implicar isso. Outra solucao estava ligada ao método "ClientScriptManager.RegisterForEventValidation".
O que devo fazer?
Invalid postback or callback argument. Event validation is enabled using 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.
Se eu espero a pagina carregar todinha antes de clicar no botao, o erro nao acontece.
Segue abaixo o trace do erro:
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.TextBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
at System.Web.UI.WebControls.TextBox.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)
Já vi na internet uma solucao que seria colocar a propriendade "EnableEventValidation" da pagina igual a False mas nao sei em que vai implicar isso. Outra solucao estava ligada ao método "ClientScriptManager.RegisterForEventValidation".
O que devo fazer?
Nefrodata Ltda
Curtidas 0
Respostas
Fabio Mans
08/06/2009
Coloque o EnableEventValidation="true" e também não permitir que o usuário clique antes da página ser renderizada, para isto utilize o UpdateProgress.
Fabio
Fabio
GOSTEI 0
Nefrodata Ltda
08/06/2009
Eu vi na internet recomendações para colocar "EnableEventValidation=False" e vc me diz para colocar True. Para que serve essa propriendade entao?
Outra coisa. Eu não uso UpdatePanel, por isso nao tem como eu usar o Update Progress.
Ainda aguardo uma solução.
Outra coisa. Eu não uso UpdatePanel, por isso nao tem como eu usar o Update Progress.
Ainda aguardo uma solução.
GOSTEI 0
Fabio Mans
08/06/2009
<pages enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" >
Passei errado, realmente é false. Utilize o exemplo acima.
Obtém ou define um valor indicando se a página valida eventos postagem e de retorno de chamada.
http://msdn.microsoft.com/pt-br/library/system.web.ui.page.enableeventvalidation.aspx
É recomendado, mas quando se utiliza Ajax sempre ocorre este erro, neste caso tem que colocar como False.
Fabio
Passei errado, realmente é false. Utilize o exemplo acima.
Obtém ou define um valor indicando se a página valida eventos postagem e de retorno de chamada.
http://msdn.microsoft.com/pt-br/library/system.web.ui.page.enableeventvalidation.aspx
É recomendado, mas quando se utiliza Ajax sempre ocorre este erro, neste caso tem que colocar como False.
Fabio
GOSTEI 0
Nefrodata Ltda
08/06/2009
Para que serve viewStateEncryptionMode="Never" e enableViewStateMac="false"?
GOSTEI 0
Fabio Mans
08/06/2009
Você pode criptografar o ViewState, para que ninguém veja o seus dados, com Never não vai acontecer isso (performance)
viewStateEncryptionMode="Never"
ViewStateMac eu não sei o que é, vou pesquisar e te falo.
enableViewStateMac="false"?
http://msdn.microsoft.com/pt-br/library/system.web.ui.page.enableviewstatemac.aspx
Fabio
viewStateEncryptionMode="Never"
ViewStateMac eu não sei o que é, vou pesquisar e te falo.
enableViewStateMac="false"?
http://msdn.microsoft.com/pt-br/library/system.web.ui.page.enableviewstatemac.aspx
Fabio
GOSTEI 0
Devmedia
08/06/2009
Senhor,
a resposta do consultor respondeu sua dúvidas? Podemos encerrar o chamado?
a resposta do consultor respondeu sua dúvidas? Podemos encerrar o chamado?
GOSTEI 0
Devmedia
08/06/2009
Senhor,
por falta de retorno estamos mudando o status do seu chamado para concluído. caso ainda tenha dúvidas sobre o assunto desse post, coloque aqui a sua dúvida q o consultor voltará a lhe atender.
por falta de retorno estamos mudando o status do seu chamado para concluído. caso ainda tenha dúvidas sobre o assunto desse post, coloque aqui a sua dúvida q o consultor voltará a lhe atender.
GOSTEI 0