【发布时间】:2010-07-02 10:49:07
【问题描述】:
我继承了一个正在更新的站点,其中分配了一个DropDownList 和一个RangeValidator。数据绑定到 Page_Load 上的下拉列表。这些值是从数据库中检索的,因此每个项目的 value 属性都设置为数据库中项目的唯一 ID。
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");
但是,当我尝试发布页面时,范围验证失败。然后,即使我手动选择该值,或选择另一个有效值,它仍然不会验证。使其生效的唯一方法是选择无效值,然后重新选择有效值。
有什么想法吗?
更新
数据绑定代码如下:
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
【问题讨论】:
-
“...范围验证失败”是什么意思。它是否在您看到错误消息的感觉上失败了,或者它在实际应该时没有评估并且什么也不显示?
-
@Juri,对不起,我应该更清楚。下拉菜单中的值验证失败,即控件正在验证,只是不正确。
标签: asp.net jquery vb.net drop-down-menu