Calendar1.SelectedDate 只返回 {0001-1-1 0:00:00}

阿嚏个技术 2008-09-09 01:52:22
日历显示正常,但点击日历上的日期后,selecteddate返回的0001-1-1 0:00:00,请问是什么原因??
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
date1 = DateTime.Now;
}
else
date1 = this.Calendar1.SelectedDate;
}


aspx文件
<body>
<form id="form1" runat="server">
<div>
选择查询日期:<asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#999999"
CellPadding="4" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt"
ForeColor="Black" Height="180px" Width="200px">
<SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />
<SelectorStyle BackColor="#CCCCCC" />
<WeekendDayStyle BackColor="#FFFFCC" />
<TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" />
<OtherMonthDayStyle ForeColor="#808080" />
<NextPrevStyle VerticalAlign="Bottom" />
<DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" />
<TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" />
</asp:Calendar>

</div>
统计数据:<asp:Label ID="Label1" runat="server" Text="0" Width="112px"></asp:Label>
</form>
...全文
372 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿嚏个技术 2008-09-09
  • 打赏
  • 举报
回复
to:sp1234
嗯,我又试了试,你说的很对。其实Page_Load,Calendar1_SelectionChanged是和对象的状态的变化有关的,然而对变化的处理最好是用别的方式处理,比如用一个按钮,这样保证了变量变化的完整性。
阿嚏个技术 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]
引用楼主 yjack007 的帖子:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
date1 = DateTime.Now;
}
else
date1 = this.Calendar1.SelectedDate;
}


严重的编程思路问题。

代码应该出现在

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
date1 = this.Calen…
[/Quote]

不好意思,我是个ASP.net新手,学了不到2天。按你的意思我做过,这个只是发生着我变更日期点击时的事件,如果要我点击固定的某个日期很多次,这个事件好像做不来。所以我问题的重点是caledar的selecteddata为什么附不上值。
阿嚏个技术 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 s32702 的回复:]
加个类型转换
[/Quote]
这个肯定不行吧?date1是个DateTime类型,另外selecteddate返回的0001-1-1 0:00:00,即便类型转化出来的也无非是“0001-1-1“的字串。
king5281273 2008-09-09
  • 打赏
  • 举报
回复
Calendar1.SelectedDate.ToString("YYYY-mm-DD")
  • 打赏
  • 举报
回复
[Quote=引用楼主 yjack007 的帖子:]
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
date1 = DateTime.Now;
}
else
date1 = this.Calendar1.SelectedDate;
}
[/Quote]

严重的编程思路问题。

代码应该出现在

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
date1 = this.Calendar1.SelectedDate;
}

中。你可能会觉着这样不符合你的编程设计思路,那么你应该重新考虑asp.net编程思路。


做任何界面,你可以在界面上放一个Button引起回发,时不时点一下这个button,借此分析程序状态看看你的编程思路是不是乱的。
leon28 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhj19820829 的回复:]
加类型转换
[/Quote]
zhj19820829 2008-09-09
  • 打赏
  • 举报
回复
加类型转换
s32702 2008-09-09
  • 打赏
  • 举报
回复
加个类型转换

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧