0

我有一个图像按钮,它应该切换最初设置为 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 上日历标记的默认值。

谢谢

4

3 回答 3

1

删除线

Calendar3.EnableViewState = false;

您可以简单地将按钮单击事件编写为:

Calendar3.Visible = !Calendar3.Visible; //toggle effect
于 2012-12-05T07:09:16.450 回答
1

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

例如。:

初始设置 style="display:none" 并使用客户端事件(使用 jQuery)切换它。

<script>
    $(function(){
        $("<%=Calendar3.ClientID%>").css("display", "none");
        $("<%=ImageButton1.ClientID%>").on("click", function(){
         $("<%=Calendar3.ClientID%>").toggle();
        });
    });
<\script>
于 2012-12-05T07:21:33.750 回答
0

Calendar3.Visible 返回一个布尔值,所以不需要

if (Calendar3.Visible == false)

只是

if (!Calendar3.Visible)

会做

于 2012-12-05T07:12:22.730 回答