3

我试图在 ASP.NET 上为 Calendar 对象设置一个新日期,但没有任何改变。这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{

    if (Page.IsPostBack)
    {
        cld_birth.SelectedDate = new DateTime(2003, 1, 1);
    }
}
4

5 回答 5

9

尝试设置VisibleDate

if (Page.IsPostBack)
{
    cld_birth.SelectedDate = new DateTime(2003, 1, 1);
    cld_birth.VisibleDate = new DateTime(2003, 1, 1);
}
于 2012-09-20T06:40:57.560 回答
3

如果日期包含非午夜时间,则会出现另一个问题,即所选日期未突出显示(即 SelectedDayStyle 被忽略)。你会期望第一个选项没问题。不,不幸的是

            Dim oDt As New Date()
            oDt = Now                
            Dim oDtYesterday As New Date
            oDtYesterday = DateAdd(DateInterval.Day, -1, oDt)

            'oDtYesterday is all fine, but does not highlight
            'calDateFrom.SelectedDate = oDtYesterday 

            Dim sDateYesterday As String
            sDateYesterday = Format(oDtYesterday, "dd MMM yyyy")

            Dim oDtY As New Date
            oDtY = CDate(sDateYesterday & " 12:00:00 AM")

            calDateFrom.SelectedDate = oDtY 
            calDateFrom.VisibleDate = calDateFrom.SelectedDate
于 2013-07-29T09:40:48.030 回答
1

您必须SelectedDayStyle在您的控件中定义。

<asp:Calendar ID="cld_birth" runat="server">
   <SelectedDayStyle Font-Size="X-Large" />
</asp:Calendar>

并使用:

if (!Page.IsPostBack)
{
  cld_birth.SelectedDate = new DateTime(2003, 1, 1);
}
于 2012-09-20T06:41:40.263 回答
1

如果要设置第一次加载页面的时间,则使用IsPostBack 属性来确定是第一次加载页面还是回发页面。

if (!Page.IsPostBack)
    {
        cld_birth.SelectedDate = new DateTime(2003, 1, 1);
    }
于 2012-09-20T06:36:50.680 回答
0

按照@Martin-Brennan 的建议做,但代码可能需要放在 Page_PreRender 事件处理程序中。

  protected void Page_PreRender(object sender, EventArgs e)
  {
    if (Page.IsPostBack)
    {
      cld_birth.SelectedDate = new DateTime(2003, 1, 1);
      cld_birth.VisibleDate = new DateTime(2003, 1, 1);
    }
  }
于 2013-10-01T04:01:03.347 回答