我在asp.net中有一个面板,只有在特定文本框具有经过验证和接受的输入时才会显示。在所有其他情况下,它应该保持隐藏。
文本框及其验证的代码是:
<td class="auto-style4" align="left">
ID:
<br />
</td>
<td class="style10">
<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的新手,任何帮助都将不胜感激。感谢。
答案 0 :(得分:0)
您似乎在RBL_EnterBugID_SelectedIndexChanged
什么是RBL_EnterBugID_SelectedIndexChanged
?它是无线电按钮吗?
CASE是否正确?因为YES
与Yes
或yes
也许你可以替换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)