2015-04-27 2 views
0

Мне нужна помощь, чтобы ограничить мое текстовое поле принятием только чисел. У меня есть другое текстовое событие textchanged, и в этом состоянии я не хочу, чтобы пользователь мог писать другие символы, кроме цифр. внедрили maxlength, но я не могу утверждать, что accpet просто числа. вот мое условие, что я хочу реализовать в:Подтвердить текстовое поле с помощью веб-формы vb.net

Protected Sub txtIdType_TextChanged(sender As Object, e As EventArgs) 
     Dim txtb As TextBox = CType(FormViewPerson.FindControl("txtIdType"), TextBox) 
     Dim txtb1 As TextBox = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox) 

     If (txtb.Text = "Leternjoftimi" OrElse txtb.Text = "KosovoIDCard" OrElse txtb.Text = "Licna karta") Then 
      txtb1.MaxLength = 10 
     End If 
End Sub 

ответ

2

Вы можете сделать это просто в aspx page, как показано ниже: -

<asp:TextBox ID="txtNumbers" runat="server" autocomplete="off" ValidationGroup="AddNew"></asp:TextBox> 
<asp:RegularExpressionValidator ID="regNumbers" runat="server" ErrorMessage="Only numbers are allowed" ControlToValidate="txtNumbers" ValidationExpression="^[0-9]*$" ValidationGroup="AddNew"></asp:RegularExpressionValidator> 

Вам не нужно использовать code-behind для этого. Надеюсь, что это поможет

+0

Мне нужно только тогда, когда txtb.Text = "Leternjoftimi" txtb1 писать только цифры не для всех типов – user2568960

+0

всегда будет 'txtb.Text' =' Leternjoftimi' и где вы будете писать только цифры. Пожалуйста, четко сформулируйте свои сомнения. Как по вашему вопросу, вам нужно только текстовое поле, чтобы разрешить только номера. – BNN

+0

Да, просто для этого случая (txtb.Text = «Leternjoftimi») Я хочу, чтобы другое текстовое поле было maxlength = 10 и не позволяло писать другие символы, кроме цифр – user2568960

1

Вы можете добавить валидатор из кода позади. Попробуйте сделать следующее:

Protected Sub txtIdType_TextChanged(sender As Object, e As EventArgs) 
      Dim txtb As TextBox = CType(FormViewPerson.FindControl("txtIdType"), TextBox) 
      Dim txtb1 As TextBox = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox) 

      If (txtb.Text = "Leternjoftimi" OrElse txtb.Text = "KosovoIDCard" OrElse txtb.Text = "Licna karta") Then 

      txtb1.MaxLength = 10 
      Dim validator As New RegularExpressionValidator() 
      validator.ID = "validator" + New Random().[Next](100, 1000) 
      validator.ControlToValidate = CType(FormViewPerson.FindControl("TextBoxIDCode"), TextBox).ID 
      validator.ValidationExpression="^[0-9]*$"  
      FormViewPerson.Controls.Add(validator) 

      End If 

     End Sub 

Suksese!

+0

Я пробовал это, но он не работает, он не проверяется: s – user2568960

+0

можете ли вы проверить браузер, если отображается интервал с некоторым идентификатором, который содержит слово 'validator'? – enb081

+0

hmm, no it is not – user2568960

1

Я решил свою проблему с помощью этой функции:

For Each ch As Char In txt.Text 
       If Not Char.IsDigit(ch) Then 
        txt.Text = "" 
        Exit Sub 
       End If 
      Next 
Смежные вопросы