ASP.NET日历未更新

本文关键字:更新 日历 NET ASP | 更新日期: 2023-09-27 17:58:49

我正在将日历添加到我的应用程序中,并且很难更新日期。出于某种原因,当我选择一个新日期时,会显示上一个日期。因此,如果它从第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");

谢谢。

ASP.NET日历未更新

您的日历可能会触发回发,但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>