2009-12-01 50 views
0

我有一個表名折扣,具有以下模式的驗證多行:XVAL和數據

PK DiscountID詮釋

FK客戶ID詮釋

資金量

名稱VARCHAR(50 )

所以我顯示所有與客戶有關的折扣。每位顧客將有3個折扣記錄。

當我生成窗體時,要編輯的關聯文本框的ID和名稱必須是唯一的,才能正確處理。

當我嘗試使用XVAL,因爲我的字段名不匹配的架構名稱, 'Amount_1' 而不是 '量' 來驗證,它不驗證該字段。

我該如何得到這個工作?

我無法將所有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; } 
     }    
    } 

如何得到那個工作任何想法?

回答

3

我打得有點用的前綴,這是怎麼可以這樣做:

首先,你必須命名文本框有輸精管前綴,但相同的屬性名稱「金額」,然後附上的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") %> 

希望這有助於

+0

是的,這有助於!這正是我在尋找的感謝! – Gabe