【问题标题】:asp Textbox visible property always true in code behindasp Textbox visible 属性在后面的代码中始终为 true
【发布时间】:2013-11-26 12:52:26
【问题描述】:

我有以下代码:

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 然后文本框在浏览器中不可见。

但是验证块总是被执行。

我无法确定原因..有人有线索吗..?

【问题讨论】:

  • 旁注:使用AndAlsoOrElse 作为默认值,而不是AndOr。另外,If txtChequeNo.Visible Or txtChequeNo.Visible = true这是同样的条件,最后只是冗长的版本和多余的。

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


【解决方案1】:

这很有意义。

您遇到此问题是因为您在 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
%>

我在没有设置任何可见性值的情况下第一次创建文本框(默认为 true),然后使用代码更改可见性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多