Fórum Ajax #6614

08/06/2009

0

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?
Nefrodata Ltda

Nefrodata Ltda

Responder

Posts

08/06/2009

Fabio Mans

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
Responder

Gostei + 0

08/06/2009

Nefrodata Ltda

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.
Responder

Gostei + 0

08/06/2009

Fabio Mans

    <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


Responder

Gostei + 0

09/06/2009

Nefrodata Ltda

Para que serve viewStateEncryptionMode="Never" e enableViewStateMac="false"?
Responder

Gostei + 0

09/06/2009

Fabio Mans

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


Responder

Gostei + 0

17/06/2009

Devmedia

Senhor,
a resposta do consultor respondeu sua dúvidas? Podemos encerrar o chamado?
Responder

Gostei + 0

23/06/2009

Devmedia

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar