Question

Bonjour, cela peut sembler une question étrange, mais voici ma situation:

J'ai un formulaire dans lequel l'utilisateur peut cliquer et ajouter des lignes contenant certains champs de saisie. Ceci est strictement fait côté client en utilisant JQuery. Je peux accéder aux valeurs d'entrée postback côté asp.net en utilisant Request.Form et le nom des champs, ce qui est correct. Le problème, c'est que lorsque la page est postée, les champs disparaissent évidemment. Je n'ai donc aucun moyen de valider une erreur ou autre chose. Quelles sont mes solutions possibles ici? Dois-je générer dynamiquement les champs correspondants côté serveur lorsque la publication a lieu et mettre les valeurs déjà lues dans les champs générés côté client de manière à ce qu'elles soient transparentes pour les utilisateurs? Est-ce une façon de faire les choses? Y a-t-il un meilleur moyen?

Je pensais ajouter une méthode ajax côté serveur qui renverrait les informations de validation et je pourrais l'utiliser pour signaler des erreurs ou des erreurs non côté client sans avoir à poster, mais le bouton qui provoque la publication est le bouton " next " bouton, et j’en ai besoin pour passer à la page suivante s’il n’ya pas d’erreur.

Je cherche plus d'informations que quelqu'un pourrait avoir et le pour et le contre des approches.

Merci

Était-ce utile?

La solution

Si vous souhaitez ajouter des champs de saisie de manière dynamique, vous devez conserver un hachage côté serveur des nouveaux champs ajoutés et les ré-instancier dans Page_Init afin qu'ils persistent entre les publications.

Je pense que votre idée AJAX est bonne:

  1. appelez une méthode côté serveur via jQuery (il peut s'agir d'une méthode statique sur votre page .aspx.) La méthode côté serveur ajoute une valeur de chaîne à une List<String> session.
  2. Demandez à la méthode de renvoyer la valeur de chaîne, qui correspond à l'ID de l'élément à ajouter à la page.
  3. Ajoutez les éléments à votre page avec jQuery.
  4. Utilisez la variable de session pour réaffirmer vos champs ajoutés dynamiquement lors de la publication.

Cette méthode vous permet d'ajouter rapidement des champs côté client et empêche vos champs dynamiques de disparaître lors de la publication.

Autres conseils

1) Rapide et sale, vous pouvez utiliser un UpdatePanel, mais cela augmenterait la taille du trafic. Cela vous permettrait d'inclure des contrôles de validation en reportant l'intégralité du balisage de la table.

2) Vous pouvez utiliser un type de méthode de validation personnalisée ou CustomValidator et simplement utiliser les valeurs Request.Form. Tant que vous avez le moyen d'identifier les champs, vous devriez pouvoir le résoudre, mais vous devrez recréer la scène si la publication échoue, car vous perdriez ces parties.

3) Vous pouvez faire le " postback " via un appel WebMethod et gérez tout manuellement. C’est probablement le moyen le plus simple de le faire puisque vous mélangez et faites correspondre les éléments WebForms traditionnels avec un modèle plus client toutefois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top