2013-03-26 2 views
1

J'ai un contrôle d'utilisateur Web affiché par mojoportal. J'ai une condition if qui vérifie IsPostback et masque les éléments en conséquence. Je aussi un UpdatePanel qui affiche ou masque une case à cocher en fonction de la valeur sélectionnée de la RadioButtonListContrôle d'utilisateur Web Masquer les éléments après l'envoi

Maintenant, le problème est quand j'utilise le UpdatePanel je dois désactiver le IsPostBack sinon je reçois une exception

Argument de publication ou de rappel invalide. La validation d'événement est activée en utilisant la configuration ou <% @ Page EnableEventValidation = "true"%> dans une page. Pour des raisons de sécurité, cette fonctionnalité vérifie que les arguments des événements de publication ou de rappel proviennent du contrôle serveur qui les a rendus à l'origine. Si les données sont valides et attendues, utilisez la méthode ClientScriptManager.RegisterForEventValidation afin d'enregistrer les données de publication ou de rappel pour validation.

Comment puis-je accomplir cela? Je dois masquer les éléments après que le formulaire a été soumis ou chargé la première fois.

Répondre

0

Cela se produit lorsque les valeurs de vos contrôles diffèrent entre leur état d'origine et la publication. La façon rapide et facile de remédier est d'ajouter ceci à votre tête de page:

EnableEventValidation = "False" 

IE:

<%@ Page Language="VB" AutoEventWireup="false" Inherits="myPage" Codebehind="MyPage.aspx.vb" EnableEventValidation="false" MasterPageFile="~/Site.Master" %> 

Mais sacrifie la sécurité pour la simplicité. Si la sécurité n'est pas une préoccupation, cela fonctionnera. Autrement, vous devez trouver quel contrôle est à l'origine de cette inscription pour la publication, comme ceci:

 ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(Me.myControl) 
Questions connexes