如何将rangevalidator最大值设置为存储过程中的值,其输入值来自下拉列表中的选定项目?

时间:2013-04-17 08:15:58

标签: jquery asp.net stored-procedures rangevalidator

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

enter image description here

2 个答案:

答案 0 :(得分:1)

要在Javascript使用中更改验证器的最大值:

var rvalid = document.getElementById('<%= RangeValidator1.ClientID %>');
rvalid.maximumvalue = 10;

为了从存储过程中获取最大数量,有许多解决方案。您可以执行Ajax调用,也可以在页面呈现时立即存储所有值。

您是如何根据身份证获得价格的?也许你应该遵循类似的方法。

答案 1 :(得分:0)

请改用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"/>