2009-12-01 8 views
0

J'ai un rabais de nom de la table qui a le schéma suivant:xVal et de valider plusieurs lignes de données

PK DiscountID int

FK CustomerID int

Montant de l'argent

Nom varchar (50 Donc, je montre tous les rabais liés au client. Chaque client aura 3 enregistrements de réduction.

Lorsque je génère le formulaire, les ID et les noms des zones de texte associées à éditer qui doivent être uniques pour être traités correctement.

Exemple

Lorsque je tente de valider à l'aide xVal, puisque mes noms de champs ne sont pas correspondant au nom de schéma, 'amount_1' au lieu de 'Montant', il ne valide pas le champ.

Comment puis-je faire fonctionner cela?

Je ne peux pas combiner les 3 réductions en un seul enregistrement pour le client unique, car il y a d'autres champs que j'ai omis pour simplifier l'exemple. J'ai besoin de 3 réductions pour chaque client sur 3 lignes.

Voici quelques code:

<form method="post" action="ProcessUpdate"> 

<table> 

<tr> <td> Discount 1 </td> <td> <%= Html.TextBox("Amount_1") %></td></tr> 
<tr> <td> Discount 2 </td> <td> <%= Html.TextBox("Amount_2") %></td></tr> 
<tr> <td> Discount 3 </td> <td> <%= Html.TextBox("Amount_3") %></td></tr> 

<tr> <td> <input type="submit" value="submit"/> </td> </tr> 

</table> 
</form> 

<%= Html.ClientSideValidation<Discount>() %> 

Voici mes métadonnées

[MetadataType(typeof(DiscountMetaData))] 
    public partial class Discount 
    { 
     public class DiscountMetaData 
     { 
      [Required(ErrorMessage = " [Required] ")] 
      public string Amount { get; set; } 
     }    
    } 

Toutes les idées sur la façon d'obtenir ce à travailler?

Répondre

3

J'ai joué un peu avec des préfixes et c'est comment cela pourrait être fait:

D'abord, vous devriez appeler textboxes avoir préfixe déférent, mais même nom de propriété « Montant », puis à fixer validateurs jquery à chaque champ en appelant Html.ClientSideValidation trois fois, pour chaque préfixe.

<form method="post" action="ProcessUpdate"> 

<table> 

<tr> <td> Discount 1 </td> <td> <%= Html.TextBox("discount1.Amount") %></td></tr> 
<tr> <td> Discount 2 </td> <td> <%= Html.TextBox("discount2.Amount") %></td></tr> 
<tr> <td> Discount 3 </td> <td> <%= Html.TextBox("discount3.Amount") %></td></tr> 

<tr> <td> <input type="submit" value="submit"/> </td> </tr> 

</table> 
</form> 

<%= Html.ClientSideValidation<Discount>("discount1") %> 
<%= Html.ClientSideValidation<Discount>("discount2") %> 
<%= Html.ClientSideValidation<Discount>("discount3") %> 

Hope this helps

+0

Oui, cela a aidé! C'était exactement ce que je cherchais merci! – Gabe