Как установить максимальное значение rangevalidator на значение из хранимой процедуры, чье входное значение берется из выбранного элемента в раскрывающемся списке?

Вот сценарий. У меня есть выпадающий список, который заполняет элементы. Элементы раскрывающегося списка содержат идентификатор продукта в качестве значения. Теперь количество, подлежащее заполнению в текстовом поле, должно быть проверено с использованием rangevalidator, где максимальное значение должно быть взято из базы данных в соответствии с идентификатором продукта выбранного элемента (у меня уже есть сохраненный процесс, чтобы обеспечить максимальное количество для соответствующего продукта). Как я могу установить максимальное значение для валидатора диапазона для количества. Также я использовал плагин jquery для дизайна выпадающего меню и использовал клиентский скрипт для отображения цены в соответствии с идентификатором продукта, так как selectindexchanged не запускается. Кто-нибудь пролил бы свет на эту проблему.

2 ответа

Чтобы изменить максимальное значение валидатора в Javascript, используйте:

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

Для получения максимального количества из хранимой процедуры существует множество решений. Вы можете сделать Ajax-вызов или сохранить все значения сразу после рендеринга страницы.

Как вы получили значение цены по идентификатору? Может быть, вы должны следовать аналогичному подходу здесь.

Вместо этого используйте 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"/>
Другие вопросы по тегам