2010-07-02 4 views
1

Я унаследовал сайт, который я посередине, который имеет DropDownList и назначенный ему RangeValidator. Данные привязаны к выпадающему меню Page_Load. Значения извлекаются из базы данных, поэтому для свойства value каждого элемента устанавливается уникальный идентификатор элемента в БД.RangeValidator не работает при выборе значения DropDownList с использованием jQuery

RangeValidator выглядит что-то вроде:

<asp:rangevalidator id="ddRangeValidator" runat="server" ControlToValidate="ddMenu" ErrorMessage="Please select value in range" MinimumValue="1" MaximumValue="100000" Type="Integer">*</asp:rangevalidator> 

У меня есть метод, который автоматически заполнит это значение в JQuery, например,

$("#ddMenu").val("An Option"); 

Это работает, однако, когда я пытаюсь опубликовать страницу, проверка диапазона не срабатывает. Тогда, даже если я вручную выберу это значение или выберем другое допустимое значение, оно все равно не будет проверяться. Единственный способ проверить это - выбрать недопустимое значение, а затем повторно выбрать допустимый.

Любые идеи?

Update

Вот данные кода связывания:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load, Me.Load 

    If Not Page.IsPostBack Then 
     Dim ds As New DataSet() 
     Dim myDbObject As New myDbObject() 
     ds = myDbObject.ToDataSet() // retrieves all objects from the database 

     // store the results in a temporary view to filter 
     Dim dv As DataView 
     dv = New DataView(ds.Tables(0), "IsLive = True", "ID", DataViewRowState.CurrentRows) 

     Dim i As Integer = 0 
     ddMenu.Items.Add("Select a value") 
     ddMenu.Items.Item(0).Value = 0 

     // add all objects from filtered list into drop down menu 
     For i = 0 To dv.Count - 1 
      With ddMenu.Items 
       // add a new item 
       .Add(dv.Item(i).Item("Name")) 
       // set the Value property as unique ID of object 
       .Item(i + 1).Value = dv.Item(i).Item("ID") 
      End With 
     Next 
    End If 

End If 
+0

Что означают слова «... проверка валидации диапазона». Сбой в том, что вы видите сообщение об ошибке, или он не может оценить и ничего не показывать, когда он на самом деле должен? – Juri

+0

@ Juri, извините, я должен был быть более ясным. Значение в выпадающем меню не проверяет правильность, т. Е. Элемент управления проверяется корректно. – James

ответ

1

Оказывается, это была проблема с загрузкой моей страницы дважды ... так что теперь проблема будет отслеживать, почему она загружается дважды!

0

Я предполагаю, что Range валидатор проверяет фактическое "значение" из выпадающего списка. Возможно ли, что с помощью jQuery для заполнения раскрывающегося списка фактическая запись не получит правильную опцию «значение»? Не могли бы вы разместить опубликованный HTML-код в раскрывающемся списке?

+0

Я не использую jQuery для заполнения DropDownList, я использую jQuery для автоматического выбора значения. DropDownList привязан к DropDownList на странице codebehind на странице_Load. Значение определенно устанавливается. Я все равно отправлю код, чтобы вы его увидели. – James

Смежные вопросы