2

如何禁用asp:calendar控件上的未来日期?

例如,今天是 2013 年 10 月 22 日,我想禁用 10 月 23 日以后的日期,并在当前日期时重新​​启用它们。

4

2 回答 2

2

您可以使用此技巧禁用日历控件中的未来日期。

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{

  if (e.Day.Date > DateTime.Today)
  {

    e.Day.IsSelectable = false;
  }

}
于 2013-12-11T10:35:22.803 回答
2

您将需要使用 DayRender 方法。

C# 代码背后

    public void Calendar1_DayRender(object o, DayRenderEventArgs e)
            {


                e.Cell.BackColor = System.Drawing.Color.Empty;
                e.Cell.ForeColor = System.Drawing.Color.DarkRed;

                //if the days are not part of the current month
                if (e.Day.IsOtherMonth)
                {  
                    e.Cell.Text = "";
                }
             }

然后在日历中,你需要放置

ASP

<asp:Calendar ID="Calendar1" runat="server" Height="145px" Width="77px" OnDayRender="Calendar1_DayRender"></asp:Calendar>

您将 OnDayRender="Calendar1_DayRender" 添加到日历控件。

希望这可以帮助!

编辑:我误读了。但是,如果您只想“启用”当天而不是其他日子,那么这将起作用..

代码背后

public void Calendar1_DayRender(object o, DayRenderEventArgs e)
        {


            e.Cell.BackColor = System.Drawing.Color.Empty;
            e.Cell.ForeColor = System.Drawing.Color.DarkRed;

            if (e.Day.IsToday)
            {
                e.Cell.BackColor = System.Drawing.Color.Blue;
            }
            else
            {
                e.Cell.Text = "";
            }
        }
于 2013-10-22T12:57:37.263 回答