我正在向我的应用程序添加日历,并且很难更新日期。出于某种原因,当我选择新日期时,会显示上一个日期。因此,如果它从11日开始并且我选择了第13个,则当页面重新加载时再次显示第11个,然后如果我选择第14个,则第13个将加载。
我在应用程序中声明日历如下:
<asp:Calendar ID="myCal" runat="server"></asp:Calendar>
然后我在page_init中有这段代码:
myCal.SelectedDate = DateTime.Today.AddDays(1);
在page_load中使用它:
String date = myCal.SelectedDate.ToString("yyyyMMdd");
感谢。
答案 0 :(得分:1)
您的日历可能会触发回发,但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>