ASP.Net复选框不允许将可见设置为True

时间:2010-04-21 17:16:00

标签: asp.net webforms checkbox visual-studio-2003

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

宣布如下:

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检查这个值时。这可能会发生什么?没有事件发射或其他任何事情发生......这真的让我陷入困境。谢谢你的帮助。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分: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");
    }