xVal и проверка нескольких строк данных - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть имя таблицы Discount, которая имеет следующую схему:

PK DiscountID int

FK CustomerID int

Сумма денег

Имя varchar (50)

Итак, я показываю все скидки, связанные с клиентом. Каждый клиент будет иметь 3 учетных записи.

Когда я генерирую форму, идентификаторы и имена связанных текстовых полей для редактирования должны быть уникальными для правильной обработки.

Пример

Когда я пытаюсь проверить с помощью xVal, поскольку мои имена полей не совпадают с именем схемы, «Amount_1» вместо «Amount», это поле не проверяет поле.

Как мне заставить это работать?

Я не могу объединить все 3 скидки в одну запись для уникального клиента, так как есть некоторые другие поля, которые я оставил для упрощения примера. Мне нужно иметь 3 скидки для каждого клиента в 3 ряда.

Вот код:

<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>() %>

Вот мои метаданные

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

Есть идеи, как заставить это работать?

1 Ответ

3 голосов
/ 02 декабря 2009

Я немного поиграл с префиксами, и вот как это можно сделать:

Сначала вам нужно будет присвоить текстовым полям имена с префиксом разного типа, но с тем же именем свойства "Amount", а затем присоединить валидаторы jquery к каждому полю, трижды вызвав Html.ClientSideValidation для каждого префикса.

<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") %>

Надеюсь, это поможет

...