DataGrid 中的验证器,使用行中的参数
Validator in DataGrid, using parameters from row
我有一种情况,在数据库中,我有项目列表,其中包含以下信息:
[Item]
* ItemName
* ItemPackagingSize
* AvailableQuantity
用户可以输入他想要获得的物品数量(数量),但是该数量必须满足以下条件:
if(quantity % ItemPackagingSize == 0)
isValid = true;
else
isValid = false;
我应该使用什么 ASP.NET 验证器来检查这个东西?或者也许还有其他方法可以做到这一点?
例如,对于 AvailableQuantity 我使用这个:
<asp:RangeValidator ID="RangeValidator" ControlToValidate="OrderQuantity" runat="server" Type="Double" MaximumValue='<%# Container.DataItem["LeftQuantity"] %>' ErrorMessage="Quantity entered is higher than available quantity"></asp:RangeValidator>
范围验证器将只检查落在两个参数之间的输入 - 低和高。
看来您的要求是确保客户只购买整包 - 您可以购买六件装,但不能购买单独的瓶子。
您可以创建一个自定义验证器来访问您编写的代码 - 这可以正常工作,但涉及服务器端验证。这是一个示例:http://asp.net-tutorials.com/validation/custom-validator/
另一个选项是 RegularExpression (RegEx) 验证器 - 使用客户端验证。 RegEx 可以利用模数 (%) 运算符来测试您的条件。但是,您必须为每个随不同产品而变化的 'ItemPackagingSize' 动态创建一个单独的 RegEx 验证器。
最后,另一种选择可能是重新定义您对用户的数量的含义:数量 1 表示 1 件六件装。
我有一种情况,在数据库中,我有项目列表,其中包含以下信息:
[Item]
* ItemName
* ItemPackagingSize
* AvailableQuantity
用户可以输入他想要获得的物品数量(数量),但是该数量必须满足以下条件:
if(quantity % ItemPackagingSize == 0)
isValid = true;
else
isValid = false;
我应该使用什么 ASP.NET 验证器来检查这个东西?或者也许还有其他方法可以做到这一点?
例如,对于 AvailableQuantity 我使用这个:
<asp:RangeValidator ID="RangeValidator" ControlToValidate="OrderQuantity" runat="server" Type="Double" MaximumValue='<%# Container.DataItem["LeftQuantity"] %>' ErrorMessage="Quantity entered is higher than available quantity"></asp:RangeValidator>
范围验证器将只检查落在两个参数之间的输入 - 低和高。
看来您的要求是确保客户只购买整包 - 您可以购买六件装,但不能购买单独的瓶子。
您可以创建一个自定义验证器来访问您编写的代码 - 这可以正常工作,但涉及服务器端验证。这是一个示例:http://asp.net-tutorials.com/validation/custom-validator/
另一个选项是 RegularExpression (RegEx) 验证器 - 使用客户端验证。 RegEx 可以利用模数 (%) 运算符来测试您的条件。但是,您必须为每个随不同产品而变化的 'ItemPackagingSize' 动态创建一个单独的 RegEx 验证器。
最后,另一种选择可能是重新定义您对用户的数量的含义:数量 1 表示 1 件六件装。