19

假设我有一个带有此日历控件的 aspx 页面:

<asp:Calendar ID="Calendar1" runat="server"  SelectedDate="" ></asp:Calendar>

有什么我可以为 SelectedDate 输入的内容,使其默认使用当前日期,而不必使用代码隐藏?

4

7 回答 7

20

如果您已经在进行数据绑定:

<asp:Calendar ID="Calendar1" runat="server"  SelectedDate="<%# DateTime.Today %>" />

会做的。这确实需要您在某处进行 Page.DataBind() 调用(或父控件上的数据绑定调用)。如果您不这样做并且您绝对不希望页面上有任何代码隐藏,那么您将必须创建一个包含日历控件并设置其选定日期的用户控件。

于 2008-09-17T19:13:55.073 回答
16

DateTime.Now将不起作用,请改用DateTime.Today

于 2008-11-09T06:51:13.373 回答
7

我试图让日历默认选择一个日期并为用户突出显示它。但是,我尝试使用上述所有选项,但我只设法设置日历的选定日期。

protected void Page_Load(object sender, EventArgs e)
    Calendar1.SelectedDate = DateTime.Today;
}

前面的代码没有突出显示选择,尽管它将 SelectedDate 设置为今天。

但是,选择并突出显示以下代码将正常工作。

protected void Page_Load(object sender, EventArgs e)
{
    DateTime today = DateTime.Today;
    Calendar1.TodaysDate = today;
    Calendar1.SelectedDate = Calendar1.TodaysDate;
}

检查此链接: http: //msdn.microsoft.com/en-us/library/8k0f6h1h (v=VS.85).aspx

于 2011-07-28T08:40:36.573 回答
6

有两种方法。

后期装订

<asp:Calendar ID="planning" runat="server" SelectedDate="<%# DateTime.Now %>"></asp:Calendar>

代码隐藏方式(Page_Load 解决方案)

protected void Page_Load(object sender, EventArgs e)
{
    BindCalendar();
}

private void BindCalendar()
{
    planning.SelectedDate = DateTime.Today;
}

尽管如此,我强烈建议通过 BindMyStuff 方式进行。单一入口点更易于调试。但既然你似乎知道你的游戏,你就准备好了。

于 2008-10-03T04:34:33.520 回答
4

我已经用上面的代码尝试过,但没有工作,这是设置在 asp.net 日历控件中选择的当前日期的解决方案

dtpStartDate.SelectedDate = Convert.ToDateTime(DateTime.Now.Date);
dtpStartDate.VisibleDate = Convert.ToDateTime(DateTime.Now.ToString());
于 2012-07-06T08:21:08.240 回答
0

我在 VWD 2010 中也遇到了同样的问题,并且偶然地,我有两个控件。一个在后面的代码中可用,一个不可访问。我认为控件中的语句顺序导致了这个问题。我把'runat'放在'SelectedDate'之前,这似乎解决了它。当我在“SelectedDate”之后放置“runat”时,它仍然有效!不幸的是,我现在不知道为什么它不起作用,也没有得到不起作用的原件。

这些现在都起作用了:-

<asp:Calendar ID="calDateFrom" SelectedDate="08/02/2011" SelectionMode="Day" runat="server"></asp:Calendar>
<asp:Calendar runat="server" SelectionMode="Day" SelectedDate="08/15/2011 12:00:00 AM" ID="Calendar1" VisibleDate="08/03/2011 12:00:00 AM"></asp:Calendar>
<asp:Calendar SelectionMode="Day" SelectedDate="08/31/2011 12:00:00 AM" runat="server" ID="calDateTo"></asp:Calendar>
于 2011-08-12T23:09:12.327 回答
0

实际上,我无法在 aspx 中选择日期。以下是在代码中设置选定日期的方法:

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
      DateTime dt = DateTime.Now.AddDays(-1);
      Calendar1.VisibleDate = dt;
      Calendar1.SelectedDate = dt;
      Calendar1.TodaysDate = dt;
      ...
    }
 }

在上面的示例中,我需要将默认选择日期设置为昨天。关键是设置TodayDate。否则,所选日历日期始终为今天。

于 2011-12-07T21:16:21.820 回答