1

我正在使用 Visual Studio .Net 2003 (yeeich) 中的旧 Web 应用程序,但我遇到了无法将 Visibility 设置为 True 的 Checkbox 问题。

它是这样声明的:

Protected WithEvents chkTraining As System.Web.UI.WebControls.CheckBox 

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox>

当我通过以下行进行调试时:

chkTraining.Visible = True

它通过它很好,但是当我在下一行检查这个值时,chkTraining.Visible = False. 这里可能发生了什么?没有事件触发或发生其他任何事情......这真的让我陷入困境。谢谢你的帮助。

4

3 回答 3

5

可能是其容器的可见性设置为 false。

于 2010-04-21T17:44:53.380 回答
0

为什么要申报?如果你把它放在 .aspx 页面中

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox>

使用后面代码中的 id 访问它...

于 2010-04-21T17:52:05.653 回答
0

您会看到您提到了 runat="server"。

因此,当您的页面在浏览器(客户端)上加载时,id“chkTraining”会更改为其他内容......这是一个基本的 asp.net 操作,它会更改服务器控件的 id。

此外,请检查属性部分中的 ClientIdMode 属性。如果它是静态的或继承你会得到它,就像你在代码中提到的那样。

但是,如果您使用过任何其他值,例如 AutoId 、 Predictable ,那么请这样做,

这,

<%=chkTraining.ClientID%>

会给你客户ID。获取客户端 ID 后,您可以使用它来访问该控件的属性。例如,

var chk = document.getElementById('<%=chkTraining.ClientID%>');

if (chk.checked == true) {
        alert("checked");                
    }
    else {
        alert("unchecked");
    }
于 2011-12-17T10:46:29.597 回答