【发布时间】:2020-05-28 08:55:26
【问题描述】:
我有 Country Dropdownlist 值,例如:“US and NON US”和一个文本字段名称“State”
当用户在文本字段中输入美国州例如“MN”并从下拉列表中选择美国时,我需要使用数据库表中的美国州值验证在文本字段中输入的州
有一个表只包含“美国”的状态
此外,当用户从下拉列表中选择“非美国”并单击按钮时,我需要验证非美国的状态,因为数据库表中没有“非美国”的状态值并显示类似“仅美国有效” 我尝试了如下代码,但不知道如何获取函数中的状态值。我需要添加什么代码来解决这个问题。我是 ASP.NET 的新手。提前感谢您的帮助。
Country:<asp:dropdownlist id="country_add" Runat="server" TabIndex="27">
<asp:ListItem Selected="True">Select</asp:ListItem>
<asp:ListItem Value="US"> US </asp:ListItem>
<asp:ListItem Value="Non US"> Non US</asp:ListItem>
</asp:dropdownlist>
<asp:customvalidator id="country_Batch" runat="server" ControlToValidate="txtMatState" OnServerValidate="validate_State"
ErrorMessage="*" text="*"></asp:customvalidator>
<asp:textbox id="txtMatState" runat="server" TabIndex="21"></asp:textbox></li>
验证:
Sub validate_State(ByVal s As Object, ByVal e
As ServerValidateEventArgs)
Dim objConn As New SqlConnection(sConn)
Dim cmdState As SqlCommand
Dim dtrState As SqlDataReader
objConn.Open()
e.IsValid = False
Dim sSQL As String = "SELECT * FROM country WHERE
[STATE] = '" & e.Value & "' "
cmdState = New SqlCommand(sSQL, objConn)
dtrState = cmdState.ExecuteReader()
While dtrState.Read()
e.IsValid = True
End While
objConn.Close()
End Sub
【问题讨论】:
-
所以你想在验证函数中访问下拉列表的值,对吗?
-
@Homungus 是的,正确
-
验证发生在您的页面代码后面 - 所以只需访问您想要的控件,例如
country_add.SelectedValue从下拉列表中获取当前选中的值