使用visible = false的ASP.NET控件不能在javascript中使用?

时间:2010-01-03 22:33:02

标签: asp.net javascript visibility

我有一个ASP.NET文本控件“FromDate”,其visible属性设置为false,但我希望客户端javascript能够使用CSS属性切换visibility属性

element1.style.display = "none"; // hides the element
element1.style.display = ""; // shows the element

但是当我尝试获取文本框时,我在

上得到null
  var element1 = document.getElementById("FromDate");

当我尝试将相同的代码与visble = true作为“FromDate”ASP.NET控件的默认值时,它可以工作(虽然这不是我需要的行为)

有什么想法吗?

3 个答案:

答案 0 :(得分:17)

将Visible = false设置为控件时,不会呈现它。这意味着没有发送到页面的控件的HTML表示。仅设置样式。

您可以将样式设置为display:none,来自服务器端代码,如下所示:

FromDate.Style.Add(HtmlTextWriterStyle.Display, "none")

答案 1 :(得分:13)

如果你想隐藏这个控件,你可以尝试这样的CSS:

<asp:somecontrol id="FromDate" style="display:none" />

我认为用CSS隐藏控件更容易理解。

答案 2 :(得分:2)

不是设置Visible = false,而是将其style.display设置为none,这样该元素仍然可供JavaScript操作。