【问题标题】:Dropdownlist validate against text field using OnServerValidate in ASP.NET在 ASP.NET 中使用 OnServerValidate 对文本字段进行下拉列表验证
【发布时间】: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 从下拉列表中获取当前选中的值

标签: asp.net vb.net


【解决方案1】:

验证发生在您的页面代码后面 - 所以只需访问您想要的控件,例如country_add.SelectedValue 从下拉列表中获取当前选择的值。

要在验证处理程序中添加自定义错误消息,只需像这样设置 CustomValidator 的属性:

country_Batch.ErrorMessage = "your desired error message"

【讨论】:

  • 如何在函数中设置CustomValidator ErrorMessage请帮忙
  • 但是我想在Form中显示错误信息如何显示错误信息请帮忙
  • @Homungus我试过下面的代码 ElseIf country_add.SelectedValue = "Non US" Then e.IsValid = False country_Batch.ErrorMessage = "请只选择美国提交表格" End If
  • 您可以为此使用验证摘要控件 - 但您的问题越来越基本,因此请开始您自己的研究,例如这里是验证摘要:docs.microsoft.com/en-us/dotnet/api/…
猜你喜欢
  • 2011-07-15
  • 2023-04-03
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多