这是场景。我有一个填充项目的下拉列表。下拉列表项包含产品 ID 作为值。现在需要使用 rangevalidator 验证要填写在文本框中的数量,其中最大值将根据所选项目的产品 ID 从数据库中获取。(我已经有一个存储的过程来提供相应产品 ID 的最大数量)。如何设置数量范围验证器的最大值。我还使用 jquery 插件来设计下拉菜单,并使用客户端脚本根据产品 ID 显示价格,因为 selectindexchanged 没有被触发。任何人都会对这个问题有所了解。

这是场景。我有一个填充项目的下拉列表。下拉列表项包含产品 ID 作为值。现在需要使用 rangevalidator 验证要填写在文本框中的数量,其中最大值将根据所选项目的产品 ID 从数据库中获取。(我已经有一个存储的过程来提供相应产品 ID 的最大数量)。如何设置数量范围验证器的最大值。我还使用 jquery 插件来设计下拉菜单,并使用客户端脚本根据产品 ID 显示价格,因为 selectindexchanged 没有被触发。任何人都会对这个问题有所了解。

要在 Javascript 中更改验证器的最大值,请使用:
var rvalid = document.getElementById('<%= RangeValidator1.ClientID %>');
rvalid.maximumvalue = 10;
为了从存储过程中获得最大数量,有很多解决方案。您可以进行 Ajax 调用,也可以在页面呈现时立即存储所有值。
你是如何根据ID得到价格值的?也许您应该在这里遵循类似的方法。
请改用 CustomValidator。将 SP 的结果设置为 Javascript 变量并在 ClientValidate 函数中使用它。
像这样的东西:
<script language="JavaScript">
function CheckQuantity(sender, args)
{
if ($('#ddl').val()>maxQty)
args.IsValid = false;
else
args.IsValid = true;
}
</script>
<asp:CustomValidator
ControlToValidate="ddl"
OnServerValidate="CheckQuantity"
Text="Invalid quantity"
runat="server"/>