我有一个带有 div 的网页:
<div runat="server" id="divNewCapture" style="padding-top: 30px; padding-bottom: 30px; padding-left: 20px">
...
</div>
在此 div 中,我有一个与 JQuery 日期选择器一起使用的文本框:
<input id="txtHtmlDateMarried" class="textEntry" style="width: 295px" />
$('#txtHtmlDateMarried').datepicker({
showOn: "button",
buttonImageOnly: true,
buttonImage: "Images/Calendar.png",
dateFormat: "yy/mm/dd",
});
在 Page_Load 上的服务器端我隐藏了 div:
divNewCapture.Visible = false;
当我稍后再次显示此 div 时,文本框的日期选择器丢失。如果我不隐藏 div,它会首先显示。 (我想在没有任何服务器端代码的情况下解决这个问题)
最佳答案
由于 divNewCapture
是服务器端控件,因此将其 Visible
设置为 false 可有效从页面中删除该控件。 IE。当 Visible
为 false 时,不呈现控件。因此,当您初始化它时,datepicker 不会看到它。
如果您想隐藏控件但确保它仍在页面上并且可用于 javascript 调用,请使用样式进行操作。隐藏:
btnSaveLineItems.Style["display"] = "none";
显示:
btnSaveLineItems.Style.Remove("display");
//or
btnSaveLineItems.Style["display"] = "block";
但是,也许更好的风格是完全管理客户端的控件可见性。
关于javascript - ASP 控件在隐藏时丢失状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26546342/