期望的效果是在页面加载时标签不显示,但是当用户单击复选框时,标签显示.这个小代码示例只是一个示例来说明问题.当标签的Visible属性设置为false时,代码将始终从javascript返回对象引用异常.如果该行被注释掉,它将正确执行而没有对象引用异常,但标签应该在页面加载时隐藏.此应用程序使用母版页,这就是将ClientID传递给javascript Toggle函数的原因.
protected void Page_Load(object sender, EventArgs e)
{
this.chkSelect.Attributes.Add("onClick", "Toggle('" + this.lblAdd.ClientID + "', '" + this.chkSelect.ClientID + "')");
this.lblAdd.Visible = false;
}
<script type="text/javascript">
function Toggle(lblAdd, chk) {
var ctrlAdd = document.getElementById(lblAdd);
var ctrlChk = document.getElementById(chk);
if (ctrlChk.checked == true) {
ctrlAdd.style.display = 'inline';
}
else {
ctrlAdd.style.display = 'none';
}
}
</script>
<asp:Label ID="lblAdd" runat="server" Text="Add" Font-Size="8pt" ForeColor="Blue"> </asp:Label>
<asp:CheckBox ID="chkSelect" runat="server" Text="Check Box1" /><br />
Run Code Online (Sandbox Code Playgroud)
我们如何在Page_Load中隐藏该标签,以便我们不会从Internet Explorer中获取对象引用错误?
谢谢...
我创建了一个只能接受一个字符的文本框.当用户在框中键入任何内容时,我希望将其转换为大写.