ASP控件在隐藏时丢失状态

ASP controls losing state when hidden

本文关键字:状态 隐藏 控件 ASP      更新时间:2023-09-26

我有一个带有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将有效地从页面中删除该控件。即,当Visible为false时,不呈现控制。因此,日期选择器在初始化时看不到它。

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

btnSaveLineItems.Style["display"] = "none";

显示:

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

然而,也许更好的风格是在客户端完全管理控件的可见性。