【问题标题】:Can't Change the Calendar Visibility无法更改日历可见性
【发布时间】:2012-12-05 07:06:40
【问题描述】:

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

谢谢

【问题讨论】:

  • 删除这一行 - Calendar3.EnableViewState = false;
  • @avd : 切换工作..但是当我再次选择相同的日期时..日历并没有消失..我该怎么做...??

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


【解决方案1】:

删除线

Calendar3.EnableViewState = false;

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

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

【讨论】:

  • 它有效,但是当我选择相同的日期时如何处理可见性。选择同一日期时使用该行代码。
  • 我在选择同一日期时使用了这个日历加载功能,但是切换功能现在不起作用。还有什么可以做的..??
  • @sandy,当您选择同一日期时,不会触发所选索引更改,因为没有更改。
  • @so 我如何在保持切换效果的同时处理它..???谢谢....
  • @sandy,这本身可能是一个关于日历控件的新问题,我不确定日历控件是否有鼠标单击事件,您可能必须解决客户端脚本
【解决方案2】:

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

例如:

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

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

【讨论】:

  • 感谢您的评论...实际上需要一个服务器端事件来处理该属性..谢谢....
【解决方案3】:

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

if (Calendar3.Visible == false)

只是

if (!Calendar3.Visible)

会的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多