Sobre o uso do controle Gridview na mesma página, constata-se que o evento de atualização não pode ser respondido pelo servidor, parece que seu alarme de erro e então consulta algumas informações, e agora a solução é resumida da seguinte forma: Clique no evento de atualização não pode responder porque o parâmetro de postback ou callback é inválido. A validação de eventos é ativada na configuração com <pages enableEventValidation="true"/> ou <%@ Page EnableEventValidation="true" %> nas páginas. Para fins de segurança, esse recurso verifica se os parâmetros dos eventos de postback ou callback se originam do controle do servidor que originalmente os renderizou. Se os dados forem válidos e esperados, use o Clientscrip para remover o método tManager.RegisterForEventValidation para registrar dados de postback ou callback para validação.
Descrição: Uma exceção não tratada ocorreu durante a execução da requisição web atual. Verifique as informações do rastreamento da pilha para detalhes sobre o erro e de onde ele veio no seu código que causou o erro.
Detalhes da exceção: System.ArgumentException: Parâmetros de postback ou callback inválidos. A validação de eventos é ativada na configuração com < páginas enableEventValidation="true"/> ou <% @ Page EnableEventValidation="true" %> nas páginas. Para fins de segurança, esse recurso verifica se os parâmetros do evento de postback ou callback se originam do controle do servidor que originalmente os renderizou. Se os dados forem válidos e esperados, use o Clientscrip para remover o método tManager.RegisterForEventValidation para registrar dados de postback ou callback para validação. Depois de olhar por um bom tempo, não encontrei nenhum problema, e estava correto verificar o código novamente, e verifiquei os IDs e atributos de todos os controles na página e ainda assim não encontrei o problema. Mais tarde, descobri que foi isso que aconteceu: Condições de ocorrência: 1. Há controles ocultos na tela. 2. Múltiplas ligações Gridview. 3. Aninhados em múltiplas formas. Causas da ocorrência: . O .NET gera um campo oculto __EVENTVALIDATION na página final com base nos elementos de saída da página. Um teste simples foi feito. Crie um <asp: button id="btnSubmit" runat="server" text="Submit" tooltip="Submit" /> e crie o correspondente handler de eventos Click. Execute o programa e responda corretamente ao evento. Depois, defina btnSubmit.Visable=false e adicione manualmente <input type="submit" name="btnSubmit" value="Submit" /> na página. Execute o programa e uma exceção aparecerá junto com o conteúdo EnableEventValidation. Defina <@Page EnableEventValidation="false" > execute o programa novamente para responder corretamente ao evento. Observando o conteúdo dos dois __EVENTVALIDATION antes e depois, pode-se perceber que são diferentes. Quanto à exceção que ocorre, pode-se considerar que o btnSubmit não está incluído na saída, mas quando é enviado para segundo plano, há conteúdo correspondente, que é inconsistente, então no caso da verificação de eventos está ativada. .NET lança uma exceção.
Solução 1: Page_Load(emissor de objetos, EventArgs e)
{ se (! Página.ÉPostBack) { vincular dados; }
} Solução 2: <pages enableEventValidation="false"/> 1. Adicionar EnableEventValidation="false" à <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Herda ="_Default" %> da página. (Primeiro de tudo)
2. Procure o web.config <system.web> <pages enableEventValidation="false"/>
3. É o aninhamento de formulários, uma página só pode ter um formulário, que pode ser resolvido verificando cuidadosamente o código.
4. Se a página contém controles como DropDownList ou ListBox, isso pode ser causado pelos seguintes motivos:
4.1 O uso do ajax no menu suspenso é comumente encontrado no menu de links provinciais e municipais, o que pode se dever ao fato de que o valor inicial do item do menu suspenso é atribuído à página aspad, o erro é solicitado quando o evento é postado, o valor inicial do menu suspenso é excluído e o item é adicionado ao evento vinculado. 4.2 A razão é que a propriedade Value do ListItem do controle DropDownList contém caracteres chineses. Basta mudar o valor para inglês ou um número. É melhor adicionar a seguinte declaração no web.config: <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/> Como o POSTBACK não é codificado no UTF-8, a remoção de t por JAVAscrip será considerada problemática. Basta mudar requestEncoding="utf-8" para ele, mas responseEncoding="utf-8" não muda
5. Cadastro para validação de eventos O princípio é deixar asp.net registrar esse valor de postback. RegisterForEventValidation deve ser chamado na renderização.
|