Выпадающий список проверяет текстовое поле с помощью OnServerValidate в ASP.NET - PullRequest
0 голосов
/ 28 мая 2020

У меня есть раскрывающийся список страны со значением, например: «США и НЕ США» и имя текстового поля «Штат»

, когда пользователь вводит штат США, например, «MN» в текстовом поле, и выбирает США из раскрывающийся список Мне нужно проверить состояние, введенное в текстовое поле, со значениями состояния US из таблицы базы данных

Есть таблица, которая содержит только состояния «US»

Также, когда пользователь выбирает «Не США» из раскрывающегося списка, и при нажатии кнопки мне нужно проверить состояние для НЕ США, так как в таблице базы данных нет значений состояния для «Не США» и отображается сообщение типа «только США действительны». Я попробовал код как показано ниже, но не знаю, как получить значение состояния в функции. какой код мне нужно добавить для работы над этим. Я новичок в 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

1 Ответ

0 голосов
/ 28 мая 2020

Проверка происходит в коде вашей страницы позади, поэтому просто откройте нужные элементы управления, например country_add.SelectedValue, чтобы получить текущее выбранное значение из раскрывающегося списка.

Чтобы добавить пользовательское сообщение об ошибке в проверку -handler, просто установите свойство CustomValidator следующим образом:

country_Batch.ErrorMessage = "your desired error message"

...