2008-10-24 9 views
0

Je commence juste avec l'ensemble de l'ajax et j'ai besoin d'aide. J'ai un formulaire où les utilisateurs auront la possibilité d'ajouter plusieurs adresses e-mail à un enregistrement. Lorsque l'utilisateur clique sur ajouter une nouvelle adresse e-mail, je vais effectuer un appel ajax qui va insérer l'adresse e-mail et ensuite afficher les e-mails en cours pour l'édition. Cela semble bien, mais le seul problème que j'ai est quand le formulaire soumet je veux être en mesure d'accéder à ces valeurs côté serveur, ainsi que de stocker les numéros de séquence de la DB ainsi les e-mails peuvent être mis à jour sur le soumettre final. Dans un répéteur, je stocke le numéro de séquence dans un champ caché, puis je parcourt les éléments, mais je ne peux pas le faire lorsque je n'utilise pas de répéteur. Je voudrais éviter d'utiliser le panneau de mise à jour en raison du trafic réseau important. Je suppose que je pourrais utiliser la collection request.forms, mais comment stocker les numéros de séquence de manière à ce que les utilisateurs ne puissent pas les voir? Suis-je totalement hors de la base? Pourquoi ne pouviez-vous pas utiliser des champs cachés de toute façon?regardant les commandes client sur le serveur

Répondre

0

Pourquoi? Tant qu'ils sont à l'intérieur de l'élément form, peu importe où ils se trouvent, n'est-ce pas?

Disons, par exemple, que vos e-mails champs ont name attribut défini comme "EMAIL_1", "EMAIL_2", etc. Vous pouvez définir name pour vos champs cachés comme "seq_email_1", "seq_email_2" ...

et vous pouvez itérer Request.Form et lire des e-mails et les numéros de séquence:

foreach (string key in Request.Form.AllKeys) { 
    if (key.StartsWith("email_")) { 
     string email = Request.Form[key]; 
     int seq = int.Parse(Request.Form["seq_" + key]); 

     // process email with seq number 
    } 
} 
+0

Je vais mettre le seq1, seq2, etc. au début plutôt qu'à la fin de mes noms de champs afin que les e-mails ne sont traités qu'une fois et pour éviter les acceptations. La façon dont vous l'avez, votre si courrait à la fois pour un email et une clé. –

+0

Oups, vous avez totalement raison, j'ai oublié cela. Je vais modifier la réponse –

Questions connexes