ASP.NET日历未更新

问题描述:

我正在将日历添加到我的应用程序,并且很难更新日期。出于某种原因,当我选择一个新日期时,会显示上一个日期。所以如果它从11日开始,我选择13日,11日会在页面重新载入时再次显示,然后如果我选择14日后,第13日将加载。ASP.NET日历未更新

我宣布在应用程序中的日历是这样的:

<asp:Calendar ID="myCal" runat="server"></asp:Calendar> 

然后,我有这样的代码在page_init:

myCal.SelectedDate = DateTime.Today.AddDays(1); 

而且在Page_Load中使用:

String date = myCal.SelectedDate.ToString("yyyyMMdd"); 

谢谢。

您的日历可能会触发回传,但Page_Load事件发生在任何控制事件之前。这意味着您每次都在Page_Load方法中加载“上一个”选定值。

您应该将日历控件的string date = myCal.SelectedDate.ToString("yyyyMMdd");及其关联使用从Page_Load移动到SelectionChanged事件处理程序。

因此创建以下方法:

protected void myCal_SelectionChanged(Object sender, EventArgs e) 
{ 
    string date = myCal.SelectedDate.ToString("yyyyMMdd"); 
    // lblMyLabel.Text = date; 
    // Put your code that handles the selected date here. 
} 

而且它与您的日历相关联:

<asp:Calendar ID="myCal" runat="server" 
    OnSelectionChanged="myCal_SelectionChanged"></asp:Calendar> 
+0

它给了我OnSelectionChange不是元素“日历” – user776530 2011-06-10 19:34:15

+0

@user的一个有效的属性,我固定它在上面。每个'SelectionChange'应该是'SelectionChanged'。这应该解决任何问题。 – 2011-06-10 19:37:15

+0

在更改值之前,它仍会执行page_load。有没有办法改变page_load之前的值? – user776530 2011-06-10 19:48:26