2011-06-10 60 views
0

我正在將日曆添加到我的應用程序,並且很難更新日期。出於某種原因,當我選擇一個新日期時,會顯示上一個日期。所以如果它從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"); 

謝謝。

回答

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> 
+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