Javascript ASP控件隐藏时处于丢失状态

Javascript ASP控件隐藏时处于丢失状态,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我有一个带有div的网页: <div runat="server" id="divNewCapture" style="padding-top: 30px; padding-bottom: 30px; padding-left: 20px"> ... </div> 当我稍后再次显示这个div时,文本框的日期选择器丢失了。它最初显示我是否不隐藏div(我想在没有任何服务器端代码的情况下修复此问题)因为divNewCapture是一个服务器端控件,将其Visible设置为f

我有一个带有div的网页:

<div runat="server" id="divNewCapture" style="padding-top: 30px; padding-bottom: 30px; padding-left: 20px">
...
</div>

当我稍后再次显示这个div时,文本框的日期选择器丢失了。它最初显示我是否不隐藏div(我想在没有任何服务器端代码的情况下修复此问题)

因为
divNewCapture
是一个服务器端控件,将其
Visible
设置为false将有效地从页面中删除该控件。也就是说,当
可见时
为false,则不呈现控件。因此,datepicker在您初始化它时不会看到它

如果您想隐藏控件,但确保它仍在页面上并且可用于javascript调用,则使用样式进行操作。要隐藏:

btnSaveLineItems.Style["display"] = "none";
显示:

btnSaveLineItems.Style.Remove("display");
//or
btnSaveLineItems.Style["display"] = "block";

然而,更好的方式可能是在客户端完全管理控件的可见性。

用jQuery包装的javascript准备好了吗?请定义“稍后再次显示此div”是什么意思。@Andrei:当您说将
Visible
设置为false服务器端会从页面中删除控件时,这很有意义。只需在单击
事件中将
Visible
设置为true,即可再次显示服务器端。使用样式隐藏控件确实更有意义,但我需要一个非常快速(30分钟)的html专用解决方案*暂时修复紧急问题,而不需要代码检查等,然后再修复代码等。我所做的似乎有点可笑。我让javascript每秒检查一次是否存在,然后应用日期选择器。可能会在周末后修复代码。@Carel,我认为您的解决方案可能会很好,但这看起来确实是一个解决方法。所以,最好的方法是去掉这个服务器端代码,在客户端管理这个div。即使删除“runat”属性虽然这是真的,但op说他显示了div,而日期选择器仍然没有显示。这并不能解决这个问题。@Esko,嗯,你可能是对的。然而,我可以想象当我的答案确实解决了这个问题(例如页面上的UpdatePanel)时的情景。我最好问问OP他的具体情况
btnSaveLineItems.Style["display"] = "none";
btnSaveLineItems.Style.Remove("display");
//or
btnSaveLineItems.Style["display"] = "block";