无法更改日历可见性

时间:2012-12-05 07:06:41

标签: c# asp.net visual-studio-2010

我有一个图像按钮,可以切换最初可见性设置为false的日历。 这是Page_Load代码:

Calendar3.EnableViewState = false;

if (!IsPostBack)
{
    BindData();
}

这是在图像按钮上单击。

 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
 {
     if (Calendar3.Visible == false)
         Calendar3.Visible = true;
     else
         Calendar3.Visible = false;
 }

第一次点击时日历会显示,如果再次点击该按钮,我无法隐藏它。如何在每次单击按钮时更改日历控件工作的可见性属性。

PS:我正在使用日历控件和更新面板中的图像按钮来进行回发,当我尝试调试时,可见性属性在每个page_load上的calendar标记中设置为默认值。

谢谢

3 个答案:

答案 0 :(得分:1)

删除行

Calendar3.EnableViewState = false;

您只需将按钮点击事件写为:

Calendar3.Visible = !Calendar3.Visible; //toggle effect

答案 1 :(得分:1)

您可以使用客户端事件来更改日历控件的可见性,而不是使用服务器端事件。

例如:

设置style =“display:none”initailly&使用客户端事件(使用jQuery )切换它。

<script>
    $(function(){
        $("<%=Calendar3.ClientID%>").css("display", "none");
        $("<%=ImageButton1.ClientID%>").on("click", function(){
         $("<%=Calendar3.ClientID%>").toggle();
        });
    });
<\script>

答案 2 :(得分:0)

Calendar3.Visible返回一个bool,所以不需要

if (Calendar3.Visible == false)

if (!Calendar3.Visible)

会做