仅当文本框验证被接受时,才能使面板可见

时间:2015-06-09 10:24:16

标签: asp.net vb.net validation

我在asp.net中有一个面板,只有在特定文本框具有经过验证和接受的输入时才会显示。在所有其他情况下,它应该保持隐藏。

文本框及其验证的代码是:

<td class="auto-style4" align="left">
    ID:
    <br />
</td>
<td class="style10">
    &nbsp;&nbsp;
    <asp:TextBox ID="TextBox1" runat="server" CssClass="txtbox" Height="25px" Width="200px" >
    </asp:TextBox>
</td>
<td >
    <asp:Panel ID="Panel1" runat="server" style="display: block;"> 
        <asp:requiredfieldvalidator ID="RequiredFieldValidator1"  ForeColor="Red" ErrorMessage="Please enter valid bug ID."  Display="Dynamic" ControlToValidate="TextBox1" runat="server" SetFocusOnError="true">*   </asp:requiredfieldvalidator>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" ForeColor="Red" ControlToValidate="TextBox1" ErrorMessage="Bug ID should be numeric." runat="server" Display="Dynamic" SetFocusOnError="true" ValidationExpression="^\d+$">*</asp:RegularExpressionValidator>
    </asp:Panel>
    <asp:Panel ID="Panel2" runat="server" style="display: block;">
        <asp:RegularExpressionValidator ID="RegularExpressionValidator4" ForeColor="Red" ControlToValidate="TextBox1" ErrorMessage="Bug ID should be numeric." runat="server" Display="Dynamic" SetFocusOnError="true" ValidationExpression="^\d+$">*</asp:RegularExpressionValidator>
    </asp:Panel>
</td>

我编写了一个函数来检查它是否是一个数字,因为我不确定是否可以在下面给出的代码中直接检查验证:(要使面板可见的是Panel3)

Protected Sub RBL_EnterBugID_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles RBL_EnterBugID.SelectedIndexChanged
    If RBL_EnterBugID.SelectedItem.Text = "Yes" Then
        Panel1.Visible = True
        Panel2.Visible = False
        If IsInputNumeric(TextBox1.Text) Then
            Panel3.Visible = True
        Else
            Panel3.Visible = False
        End If

    Else
        Panel1.Visible = False
        Panel2.Visible = True
        Panel3.Visible = False
        Panel5.Visible = True
    End If
End Sub

我是asp.net的新手,任何帮助都将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

您似乎在RBL_EnterBugID_SelectedIndexChanged

的事件代码中隐藏/显示PANEL3对象

什么是RBL_EnterBugID_SelectedIndexChanged?它是无线电按钮吗? CASE是否正确?因为YESYesyes

不同

也许你可以替换if语句

If RBL_EnterBugID.SelectedItem.Text = "Yes" Then

使用if语句

If trim(lcase(RBL_EnterBugID.SelectedItem.Text)) = "yes" Then

你也可以拿出这段代码

If IsInputNumeric(TextBox1.Text) Then
  Panel3.Visible = True
Else
  Panel3.Visible = False
End If

并将其替换为

Panel3.Visible = IsInputNumeric(TextBox1.Text)