ASP控制隐藏时丢失状态

时间:2014-10-24 10:41:03

标签: javascript jquery html asp.net

我有一个带div的网页:

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

在这个div中,我有一个与JQuery datepicker一起使用的文本框:

<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。 (我想在没有任何服务器端代码的情况下解决这个问题)

1 个答案:

答案 0 :(得分:1)

由于divNewCapture是服务器端控件,因此将其Visible设置为false会有效地从页面中删除控件。即当Visible为false时,不会呈现控件。因此,初始化时,datepicker不会看到它。

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

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

显示:

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

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