我试图在ASP.NET上为Calendar对象设置一个新日期,但没有任何改变。这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
cld_birth.SelectedDate = new DateTime(2003, 1, 1);
}
}
答案 0 :(得分:8)
尝试同时设置VisibleDate
:
if (Page.IsPostBack)
{
cld_birth.SelectedDate = new DateTime(2003, 1, 1);
cld_birth.VisibleDate = new DateTime(2003, 1, 1);
}
答案 1 :(得分: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
答案 2 :(得分:1)
如果您想首次设置页面加载的时间,请使用 IsPostBack Property 确定页面是否第一次加载,或者页面是否已发布回来。
if (!Page.IsPostBack)
{
cld_birth.SelectedDate = new DateTime(2003, 1, 1);
}
答案 3 :(得分: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);
}
答案 4 :(得分: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);
}
}