asp文本框可见属性在代码后面始终为true

时间:2013-11-26 12:52:27

标签: asp.net vb.net asp.net-4.0

我的代码如下:

ASPX:

<% Dim AccountID  As Integer
  AccountID  = 200
  If AccountID <> 202 And AccountID <> 203 Then
       txtChequeNo.Visible = False 
  Else %>
<asp:TextBox ID="txtChequeNo" Visible="true" runat="Server"></asp:TextBox>
<% End If %>

aspx.vb

在按钮中单击后面代码中的事件块:

If txtChequeNo.Visible = true Then 

// Validation Block

End if

我的问题是,AccoundID值是200然后文本框在浏览器中不可见。

但验证块始终执行。

我无法确定原因..任何人都有线索......?

1 个答案:

答案 0 :(得分:2)

这很有道理。

您遇到此问题是因为您在aspx文件中使用服务器标签,因此您的代码是逐行执行的。

您的代码会先执行,但您永远不会看到结果,因为您下方始终使用Visible="true"设置可见性

您还需要完全修改您的编码。您将asp:textbox放在else子句中?你想要实现什么目标?

使用您的编码逻辑我会写下以下内容:

<asp:TextBox ID="txtChequeNo" runat="Server"></asp:TextBox>
<%
    Dim AccountID  As Integer
    AccountID  = 200

    If AccountID <> 202 And AccountID <> 203 Then
        txtChequeNo.Visible = False 
    Else
        txtChequeNo.Visible = True
    End If
%>

我正在创建文本框1st而不设置任何可见性值(通过defaylt确实如此),然后使用代码更改可见性。